概述
Templates就是一種HTML文件
使用了Django模板語言(Django Template Language,DTL)
可以使用第三方模板(如Jinja2)
步驟
- 在APP的根目錄下創建名叫Templates的目錄
- 在該目錄下創建HTML文件
- 在views.py中返回render()
新建的blog/templates/index.html文件內容為:
1 {# blog/templates/index.html #} 2 3 <!DOCTYPE html> 4 <html lang="en"> 5 <head> 6 <meta charset="UTF-8"> 7 <title>Title</title> 8 </head> 9 <body> 10 <h1>Hello Blog!</h1> 11 </body> 12 </html>
修改后的blog/views.py文件內容為:
1 # blog/views.py 2 3 from django.shortcuts import render 4 5 def index(request): 6 return render(request,'index.html')
通過以上步驟,就可以實現新建index.html文件在瀏覽器的渲染。
DTL初步使用
1.DTL使用方法
- render()函數中支持一個dic類型參數
- 該字典是后台傳遞到模板的參數,鍵為參數名
- 在模板中使用{{參數名}}來直接使用
2.DTL使用步驟
(1)給blog/views.py文件中的render()函數添加dict參數
1 from django.shortcuts import render 2 3 def index(request): 4 return render(request,'index.html',{"hello":"Hello Blog!"})
(2)在blog/templates/index.html文件中使用{{}}
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 </head> 7 <body> 8 <h1>hello Blog!</h1> 9 <h1>{{ hello }}</h1> 10 </body> 11 </html>
經過以上步驟,刷新瀏覽器既可以看到如下圖:

解決Template沖突方案
Django會按照INSTALLED_APPS中的添加順序查找Templates
這樣就會照成不同APP下的Templates目錄中的同名html文件會造成沖突
解決方案:
在APP的Templates目錄下創建以APP名為名稱的目錄
然后將html文件放入新創建的目錄下
當前的工程目錄結構
myblog
|-----blog(應用目錄)
|-----migrations(數據移植模塊,內容自動生成)
|------__init__.py
|-----templates
|-----blog
|-----index.html
|-----__init__.py
|-----admin.py(應用的后台管理系統配置)
|-----apps.py(應用的一些配置)
|-----models.py(數據模塊,類似於MVC結構中的Models(模型))
|-----tests.py(自動化測試模塊)
|-----views.py(執行響應的代碼所在模塊)
|-----urls.py(新增路由文件)
|-----myblog(項目目錄)
|-----__init__.py
|-----settings.py(項目中的總配置文件)
|-----urls.py(URL配置文件)
|-----wsgi.py(Python應用與Web服務器之間的接口)
|-----db.sqlite3(數據庫文件)
|-----manage.py(與項目進行交互的命令行工具集入口(項目管理器))
