|
系列導(dǎo)讀 01. Django 系列篇(一):Hello World! 1. Django 有哪些配置創(chuàng)建一個(gè)項(xiàng)目之后,會(huì)自動(dòng)在項(xiàng)目根目錄下生成一個(gè)配置文件,即:settings.py 分為運(yùn)行環(huán)境和基礎(chǔ)功能的配置,主要包含:App、中間件、模板、數(shù)據(jù)庫(kù)、域名訪問(wèn)權(quán)限、項(xiàng)目路徑等 2. 基本配置基本配置包含對(duì)項(xiàng)目路徑、域名訪問(wèn)、密鑰、App 列表的配置。 一般來(lái)說(shuō),項(xiàng)目路徑和密鑰配置 是自動(dòng)生成的,不需要進(jìn)行修改配置。 其中密鑰是隨機(jī)生成的一個(gè)字符串,用于重要數(shù)據(jù),包含:密碼、CSRF 機(jī)制、Session 的加密處理。 調(diào)試模式在開(kāi)發(fā)階段,應(yīng)設(shè)置為 True,部署上線時(shí),應(yīng)更改為:False 域名訪問(wèn)設(shè)置可以訪問(wèn)的域名列表,當(dāng) DEBUG 為 True 時(shí),默認(rèn)只能在本機(jī)瀏覽器訪問(wèn)調(diào)試;否則需要填寫(xiě) ALLOWED_HOSTS,指定容許訪問(wèn)的域名。 # 設(shè)置可以訪問(wèn)的域名內(nèi)置 App 包含:
另外,可以通過(guò) manage.py 命令行工具新建 App,然后在列表中進(jìn)行配置。 3. 靜態(tài)資源配置靜態(tài)資源指網(wǎng)站中不會(huì)改變的文件,主要包含:CSS 文件、JS 文件、圖片等資源,配置屬性有 3 種,分別是:STATIC_URL、STATICFILES_DIRS、STATIC_ROOT STATIC_URL 代表資源路由,Django 對(duì)于靜態(tài)資源,默認(rèn)配置信息如下: # settings.py如果資源路由保持默認(rèn)值,在調(diào)試模式下,項(xiàng)目只能識(shí)別 App 下 static 文件夾下的靜態(tài)文件。 由于資源路由 STATIC_URL 的限制,實(shí)際開(kāi)發(fā)過(guò)程中,其他目錄的資源文件沒(méi)法訪問(wèn)。 STATICFILES_DIRS,即資源集合 可以在 settings.py 文件內(nèi)自定義靜態(tài)資源文件夾列表,這些列表目錄下的靜態(tài)文件都可以訪問(wèn)到。 # settings.pySTATICFILES_ROOT,即資源部署 STATICFILES_ROOT 主要收集整個(gè)項(xiàng)目的靜態(tài)資源,然后放在一個(gè)新的文件夾內(nèi)。 在項(xiàng)目開(kāi)發(fā)階段,Django 自動(dòng)提供靜態(tài)文件的代理服務(wù),無(wú)需指定顯式指定 STATICFILES_ROOT。 需要注意的是,在項(xiàng)目上線的時(shí)候,必須要配置 STATICFILES_ROOT,然后執(zhí)行 collectstatic 指令,實(shí)現(xiàn)服務(wù)器和項(xiàng)目之間的映射 # settings.py最后,通過(guò) http://127.0.0.1:8000/static/3.png 即可以訪問(wèn)到媒體文件。 4. 媒體資源配置除了靜態(tài)資源,還有一些經(jīng)常變動(dòng)的資源,通常需要放置到媒體資源文件夾內(nèi),比如:用戶頭像。 媒體資源配置屬性有 2 種,分別是:MEDIA_URL 和 MEDIA_ROOT 其中,MEDIA_URL 作用是配置媒體資源的路由地址,指向項(xiàng)目根目錄下的 media 文件夾 MEDIA_ROOT 是獲取 media 文件夾在當(dāng)前系統(tǒng)的完整路徑 # settings.py為了保證 Django 找到媒體文件,即:瀏覽器能訪問(wèn) media 文件夾的文件,需要在 url.py 文件中,將 media 文件夾注冊(cè)到 Django 項(xiàng)目路由設(shè)置文件中。 # urls.py最后,通過(guò) http://127.0.0.1:8000/media/4.png 即可以訪問(wèn)到媒體文件。 下篇文章將繼續(xù)聊模板、數(shù)據(jù)庫(kù)、中間件等配置的內(nèi)容。 說(shuō)說(shuō)最近遇到的編程問(wèn)題或新學(xué)的一個(gè)小技能? |
|
|