Django - 配置檔案
__file__這個變量可以擷取到目前檔案(包含這個代碼的檔案)的路徑。os.path.dirname(__file__) 得到檔案所在目錄,再來一個os.path.dirname()
就是目錄的上一級,BASE_DIR 就是項目根目錄
是否打開調試模式,DEBUG = True時,前端調用出錯會在頁面列印出錯資訊,為False時不會列印,當DEBUG = False 時,ALLOWED_HOSTS必須設定
允許通路的域名集合,如:ALLOWED_HOSTS = ['*.demon.*', 'www.baidu.com'],可以填*表示所有人可以通路
前端通路靜态檔案的路徑,例如:http://localhost:8000/static/color.css
* 假如你的app下的static檔案夾下有一個color.css,項目根目錄下的static檔案夾下也有一個color.css,Django查找這個檔案的順序是什麼?
按照規則,它會先去app下的static檔案夾下找,如果找到就直接傳回,如果沒找到,就會去 STATICFOLES_DIRS 裡面指定的路徑下順序查找,為了避免
這種情況,有兩個解決辦法,一種是把app下的color.css前面加一個路徑,比如:/myblog/blog/static/color.css 改為 /myblog/blog/static/blo
g/color.css,另外一種方法,就是修改每個靜态檔案的字首名為app_,這是兩種比較簡單的方法。
<code>STATIC_URL = '/static/'</code>
靜态檔案的根目錄,我們一般會把靜态檔案放在項目根目錄下的static檔案夾下,或者app的static檔案夾下,部署的時候,我們可以使用
python manage.py collectstatic 将所有app 下以及 STATICFILES_DIRS下的靜态檔案全部複制到 STATIC_ROOT 下。
<code>STATIC_ROOT = '/home/demon/static'</code>
指定其他(非 app 下的)靜态檔案的存放路徑
<code>STATICFILES_DIRS = (</code>
<code>os.path.join(BASE_DIR, "common_static"),</code>
<code>'/myblog/static/ ',</code>
<code>)</code>
<code># 用來存放使用者上傳的檔案</code>
<code>MEDIA_URL = '/media/'</code>
<code>MEDIA_ROOT = os.path.join(BASE_DIR,'media')</code>
一般使用者都會在 app下建立愛你一個 templates檔案夾來存放模闆檔案,但有一些模闆檔案可能是多個app共用的,這時就用它來指定
<code># 這時就可以通路 templates 和 templates2 下的模闆檔案</code>
<code>TEMPLATES = [</code>
<code>{</code>
<code>'BACKEND': 'django.template.backends.django.DjangoTemplates',</code>
<code>'DIRS': [</code>
<code>os.path.join(BASE_DIR,'templates').replace('\\', '/'),</code>
<code>os.path.join(BASE_DIR,'templates2').replace('\\', '/'),</code>
<code>],</code>
<code>'APP_DIRS': True,</code>
<code>]</code>
用來指定靜态檔案的搜尋路徑
<code># 下面會先查找 STATICFILES_DIRS 下的靜态檔案,找不到就去 app 下查找</code>
<code>STATICFILES_FINDERS = (</code>
<code>"django.contrib.staticfiles.finders.FileSystemFinder",</code>
<code>"django.contrib.staticfiles.finders.AppDirectoriesFinder"</code>