配置、靜態檔案與路由
1 配置檔案
1.1 BASE_DIR
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
當前工程的根目錄,Django會依此來定位工程內的相關檔案,我們也可以使用該引數來構造檔案路徑。
1.2 DEBUG
除錯模式,建立工程後初始值為True,即預設工作在除錯模式下。
作用:
修改程式碼檔案,程式自動重啟
Django程式出現異常時,向前端顯示詳細的錯誤追蹤資訊,例如
而非除錯模式下,僅返回Server Error (500)
注意:部署線上執行的Django不要執行在調式模式下,記得修改DEBUG=False。
1.3 本地語言與時區
Django支援本地化處理,即顯示語言與時區支援本地化。
本地化是將顯示的語言、時間等使用本地的習慣,這裡的本地化就是進行中國化,中國大陸地區使用簡體中文,時區使用亞洲/上海時區,注意這裡不使用北京時區表示。
初始化的工程預設語言和時區為英語和UTC標準時區
LANGUAGE_CODE = 'en-us' # 語言
TIME_ZONE = 'UTC' # 時區
將語言和時區修改為中國大陸資訊
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
2 靜態檔案
專案中的CSS、圖片、js都是靜態檔案。一般會將靜態檔案放到一個單獨的目錄中,以方便管理。在html頁面中呼叫時,也需要指定靜態檔案的路徑,Django中提供了一種解析的方式配置靜態檔案路徑。靜態檔案可以放在專案根目錄下,也可以放在應用的目錄下,由於有些靜態檔案在專案中是通用的,所以推薦放在專案的根目錄下,方便管理。
為了提供靜態檔案,需要配置兩個引數:
- STATICFILES_DIRS 存放查詢靜態檔案的目錄
- STATIC_URL 訪問靜態檔案的URL字首
示例
1) 在專案根目錄下建立static_files目錄來儲存靜態檔案。
2) 在demo/settings.py中修改靜態檔案的兩個引數為
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static_files'),
]
3)此時在static_files新增的任何靜態檔案都可以使用網址 /static/檔案在static_files中的路徑
例如,我們向static_files目錄中新增一個index.html檔案,在瀏覽器中就可以使用127.0.0.1:8000/static/index.html來訪問。
或者我們在static_files目錄中添加了一個子目錄和檔案goods/detail.html,在瀏覽器中就可以使用127.0.0.1:8000/static/goods/detail.html來訪問。
注意
Django 僅在除錯模式下(DEBUG=True)能對外提供靜態檔案。
當DEBUG=False工作在生產模式時,Django不再對外提供靜態檔案,需要是用collectstatic命令來收集靜態檔案並交由其他靜態檔案伺服器來提供。(詳細在部署時會講)