Django从理论到实战(part18)--配置templates文件夹路径
學(xué)習(xí)筆記,僅供參考
參考自:Django打造大型企業(yè)官網(wǎng);
本系列Blog以應(yīng)用為主,理論基礎(chǔ)部分我在后端專欄的Django系列博客已經(jīng)寫過(guò)了,如果有些需要補(bǔ)充的知識(shí)點(diǎn),我會(huì)在這個(gè)系列中,盡量詳細(xì)的記錄一下。
配置templates文件夾路徑
在項(xiàng)目的settings.py配置文件中,有一個(gè)TEMPLATES列表,這個(gè)列表中包含了模板引擎的配置,模板查找路徑的配置,模板上下文的配置等:
TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [],'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},}, ]- 參數(shù)解釋
DIRS:是一個(gè)列表,在這個(gè)列表中可以存放所有的模板路徑,以后在視圖中使用render或者render_to_string渲染模板的時(shí)候,會(huì)在這個(gè)列表的路徑中查找模板,例如:
'DIRS': [os.path.join(BASE_DIR, 'templates')], #設(shè)置的路徑:項(xiàng)目的絕對(duì)路徑/templates #BASE_DIR全局變量,可以動(dòng)態(tài)的獲取項(xiàng)目絕對(duì)路徑,無(wú)論我們把項(xiàng)目遷移到哪里APP_DIRS:默認(rèn)為True,這個(gè)設(shè)置為True后,Django會(huì)于APP下的templates文件夾中查找模板(前提是APP已經(jīng)在INSTALLED_APPS列表中安裝),我們?cè)贗NSTALLED_APPS列表中安裝的app如下:
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','book','cms','front', ]- 模板查找順序
對(duì)于代碼render('list.html'),Django會(huì)先在DIRS列表的路徑中依次查找有沒(méi)有這個(gè)模板,如果有,就返回該模板文件。
如果在DIRS列表中所有的路徑下都沒(méi)有找到該模板文件,那么Django會(huì)先檢查當(dāng)前這個(gè)視圖所處的app是否已經(jīng)安裝,如果已經(jīng)安裝了,那么就先在當(dāng)前這個(gè)app下的templates文件夾中查找模板,如果沒(méi)有找到,那么會(huì)在其他已經(jīng)安裝了的app中查找。如果所有路徑下都沒(méi)有找到,那么會(huì)拋出一個(gè)TemplateDoesNotExist的異常。
- 舉個(gè)例子
現(xiàn)在,我們利用模板來(lái)寫一個(gè)頁(yè)面。
首先,在主項(xiàng)目文件夾下創(chuàng)建templates文件夾,并在其中創(chuàng)建我們的第一個(gè)模板文件index.html:
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>小黃之家</title><style>h1 {color: pink; }</style> </head> <body><p><h1>兔子喜食草</h2><p>一般家庭飼養(yǎng)的兔子要注意食物的提供,因?yàn)橛淄脹](méi)有飽感。蔬菜本來(lái)是不建議給幼兔吃的,容易得腸炎,成年后才可以適當(dāng)提供</p></p> </body> </html>在主urls.py中創(chuàng)建一個(gè)路由:
urlpatterns = [path('admin/', admin.site.urls),path('', views.page),path('login/', views.login, name = "signin"),path('template/', views.template), ]在主views.py中創(chuàng)建一個(gè)視圖函數(shù):
def template(request):return render(request, 'index.html')向http://127.0.0.1:8000/template/發(fā)起請(qǐng)求:
總結(jié)
以上是生活随笔為你收集整理的Django从理论到实战(part18)--配置templates文件夹路径的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 钯金是什么 什么是钯金
- 下一篇: Django从理论到实战(part19)