日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django从理论到实战(part18)--配置templates文件夹路径

發布時間:2023/12/19 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django从理论到实战(part18)--配置templates文件夹路径 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

學習筆記,僅供參考

參考自:Django打造大型企業官網;

本系列Blog以應用為主,理論基礎部分我在后端專欄的Django系列博客已經寫過了,如果有些需要補充的知識點,我會在這個系列中,盡量詳細的記錄一下。



配置templates文件夾路徑


在項目的settings.py配置文件中,有一個TEMPLATES列表,這個列表中包含了模板引擎的配置,模板查找路徑的配置,模板上下文的配置等:

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',],},}, ]
  • 參數解釋

DIRS:是一個列表,在這個列表中可以存放所有的模板路徑,以后在視圖中使用render或者render_to_string渲染模板的時候,會在這個列表的路徑中查找模板,例如:

'DIRS': [os.path.join(BASE_DIR, 'templates')], #設置的路徑:項目的絕對路徑/templates #BASE_DIR全局變量,可以動態的獲取項目絕對路徑,無論我們把項目遷移到哪里

APP_DIRS:默認為True,這個設置為True后,Django會于APP下的templates文件夾中查找模板(前提是APP已經在INSTALLED_APPS列表中安裝),我們在INSTALLED_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', ]
  • 模板查找順序

對于代碼render('list.html'),Django會先在DIRS列表的路徑中依次查找有沒有這個模板,如果有,就返回該模板文件。

如果在DIRS列表中所有的路徑下都沒有找到該模板文件,那么Django會先檢查當前這個視圖所處的app是否已經安裝,如果已經安裝了,那么就先在當前這個app下的templates文件夾中查找模板,如果沒有找到,那么會在其他已經安裝了的app中查找。如果所有路徑下都沒有找到,那么會拋出一個TemplateDoesNotExist的異常。


  • 舉個例子

現在,我們利用模板來寫一個頁面。

首先,在主項目文件夾下創建templates文件夾,并在其中創建我們的第一個模板文件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>一般家庭飼養的兔子要注意食物的提供,因為幼兔沒有飽感。蔬菜本來是不建議給幼兔吃的,容易得腸炎,成年后才可以適當提供</p></p> </body> </html>

在主urls.py中創建一個路由:

urlpatterns = [path('admin/', admin.site.urls),path('', views.page),path('login/', views.login, name = "signin"),path('template/', views.template), ]

在主views.py中創建一個視圖函數:

def template(request):return render(request, 'index.html')

向http://127.0.0.1:8000/template/發起請求:

總結

以上是生活随笔為你收集整理的Django从理论到实战(part18)--配置templates文件夹路径的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。