2014-10-18 55 views
2

我有django應用程序,我在本地開發和部署到pythonanywhere。pythonanywhere django settings.py

本地Setting.py包含的sqlite-DB,本地靜態路徑等Setting.py上pythonanywhere包含的mysql-DB,靜等

我想有一個設置文件在我的git CDN鏈接,與這樣的一些檢查

if host_type=='pythonanywhere': 
    DATABASES = { "default": { "ENGINE": "django.db.backends.mysql", 

這是什麼settings.py的最佳做法?

哪個os.environ由pythonanywhere提供?

回答

2

PythonAnywhere不給你一個UI設置環境變量,雖然你可以在那裏使用

export MY_ENV_VAR="something" 

從你的問題編輯/home/yourusername/.bashrc文件,並設置一個,我猜測你想避免將數據庫設置存儲在版本控制中。所以,作爲替代的環境變量,我用一個技術是有一個文件,版本控制,其中包含自定義設置之外:

echo "production_settings.py" >> .gitignore 

在settings.py:

#... default dev settings 
DATABASES = { "default": {"ENGINE": "django.db.backends.sqlite3" 
#... 
try: 
    from production_settings import DATABASES 
except ImportError: 
    pass 

因此,在PythonAnywhere中,您可以將生產設置保存在一個名爲production_settings.py的文件中,並且在您的開發機器上,您什麼也不做。

你也可以用這個方法來設置自定義SECRET_KEY服務器,這將是良好的安全習慣上...

+0

一個小的補充。 「production_settings.py」應該放在與「settings.py」相同的文件夾中,或者你應該考慮PROJECT_ROOT(和其他路徑)計算中的路徑。 – 2014-11-06 10:47:03