1. 程式人生 > >Django-配置、靜態檔案與路由

Django-配置、靜態檔案與路由

-----配置檔案 1、BASE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))   2、DEBUG 除錯模式,建立工程後初始值為True,即預設工作在除錯模式下 部署線上執行的Django不要執行在調式模式下,記得修改DEBUG=False。   3、本地語言與時區 LANGUAGE_CODE = 'en-us' # 語言 TIME_ZONE = 'UTC' # 時區   ----- LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai'   -----靜態檔案 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命令來收集靜態檔案並交由其他靜態檔案伺服器來提供。   -----路由說明 1、路由定義位置 from django.conf.urls import url from django.contrib import admin import users.views   urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^users/index/$', users.views.index) ]   2、路由解析順序 Django在接收到一個請求時,從主路由檔案中的urlpatterns列表中以由上至下的順序查詢對應路由規則,如果發現規則為include包含,則再進入被包含的urls中的urlpatterns列表由上至下進行查詢。   urlpatterns = [ url(r'^say', views.say), url(r'^sayhello', views.sayhello), ]     3、路由命名與reverse反解析 3-1 路由命名 3-1-1: 在使用include函式定義路由時,可以使用namespace引數定義路由的名稱空間 url(r'^users/', include('users.urls', namespace='users')),   3-1-2: 在定義普通路由時,可以使用name引數指明路由的名字 urlpatterns = [ url(r'^index/$', views.index, name='index'), url(r'^say', views.say, name='say'), ]   3-2:reverse反解析 對於未指明namespace的,reverse(路由name) 對於指明namespace的,reverse(名稱空間namespace:路由name)   from django.core.urlresolvers import reverse # 注意導包路徑   def index(request): return HttpResponse("hello the world!")   def say(request): url = reverse('users:index') # 返回 /users/index/ print(url) return HttpResponse('say')   4、路徑結尾斜線/的說明 urlpatterns = [ url(r'^index/$', views.index, name='index'), ]   -----App應用配置 1、 在每個應用目錄中都包含了apps.py檔案,用於儲存該應用的相關資訊 # 在建立應用時,Django會向apps.py檔案中寫入一個該應用的配置類,如 from django.apps import AppConfig   class UsersConfig(AppConfig): name = 'users'   我們將此類新增到工程settings.py中的INSTALLED_APPS列表中,表明註冊安裝具備此配置屬性的應用   2、 AppConfig.name 屬性表示這個配置類是載入到哪個應用的,每個配置類必須包含此屬性,預設自動生成。 AppConfig.verbose_name 屬性用於設定該應用的直觀可讀的名字,此名字在Django提供的Admin管理站點中會顯示,如   from django.apps import AppConfig   class UsersConfig(AppConfig): name = 'users' verbose_name = '使用者管理'