天天看點

Django - 配置檔案

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>