Django 3.2.5博客开发教程:体验django模板
上面我們有說(shuō)過(guò),用戶(hù)發(fā)送請(qǐng)求的時(shí)候,視圖會(huì)返回一個(gè)響應(yīng),響應(yīng)可以是一個(gè)重定向,一個(gè)404錯(cuò)誤,一個(gè)XML文檔,一張圖片或者是一個(gè)HTML內(nèi)容的網(wǎng)頁(yè)。前面幾個(gè)返回的信息比較有限,我們重點(diǎn)更多是放在HTML內(nèi)容的網(wǎng)頁(yè)。我們把這樣的頁(yè)面按規(guī)范寫(xiě)好,然后都放在項(xiàng)目根目錄下的templates文件夾里,這樣的頁(yè)面,我們稱(chēng)之為"模板"頁(yè)面。
Django做為一個(gè)WEB框架,需要一種很便利的方法去動(dòng)態(tài)生成HTML網(wǎng)頁(yè),因?yàn)橛辛四0暹@個(gè)概念。模板頁(yè)面包含一些基礎(chǔ)的HTML代碼和一些特殊的語(yǔ)法,這些特殊的語(yǔ)法主要用于如何將數(shù)據(jù)動(dòng)態(tài)的插入HTML頁(yè)面中。
這些特殊的語(yǔ)法我們把它做變量、標(biāo)簽。變量是模板中最基本的組成單位。這些模板變量由視圖函數(shù)生成的,然后通過(guò)上下文傳遞到模板里,然后由瀏覽器渲染出來(lái)。
上面的都是理論, 我們不管它。我們直接說(shuō)如何在模板里調(diào)用視圖函數(shù)傳過(guò)來(lái)的變量。這些變量有很多種類(lèi)型,也就是Python支持的數(shù)據(jù)類(lèi)型比如:普通變量、列表、字典等。
在這之前我們要先設(shè)置好模板路徑,把這個(gè)路徑在settings里設(shè)置好,不然就沒(méi)法訪(fǎng)問(wèn)我們的模板目錄,之前我在文章:基礎(chǔ)配置 里已經(jīng)設(shè)置好了,下面我們直接使用就行。更多關(guān)于settings的配置可以查看文章:全局配置settings詳解
一、變量
1、在文件myblog/urls.py里設(shè)置一個(gè)URL:
urlpatterns = [...path('', views.index), #把原來(lái)的views.hello修改成views.index ''留空,表示為首頁(yè)... ]2、在文件blog/views.py里添加一個(gè)視圖函數(shù):
#添加一個(gè)函數(shù) def index(request):#添加兩個(gè)變量,并給它們賦值sitename = 'Django中文網(wǎng)'url = 'www.django.cn'#把兩個(gè)變量封裝到上下文里context = {'sitename': sitename,'url':url,}#把上下文傳遞到模板里return render(request,'index.html',context)3、在項(xiàng)目根目錄下templates文件夾里新建一個(gè)文件index.html,輸入如下內(nèi)容:
templates/index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>MyBlog</title> </head> <body> <h3>網(wǎng)站名:{{ sitename }}</h3> <h3>域名:{{ url }}</h3> </body> </html>然后啟動(dòng)項(xiàng)目,在瀏覽器里訪(fǎng)問(wèn) http://127.0.0.1:8000 就可以查看到我們?cè)谝晥D函數(shù)里我們?cè)O(shè)置的內(nèi)容。
代碼里的{{ sitename }}和{{ url}}就是模板變量,變量的數(shù)據(jù)類(lèi)型是字符串或整形。在Django模板中,變量需要用{{ 變量名}}來(lái)顯示。
二、列表
1、在視圖函數(shù)index里添加如下代碼:
blog/views.py
def index(request):sitename = 'Django中文網(wǎng)'url = 'www.django.cn'#新加一個(gè)列表list=['開(kāi)發(fā)前的準(zhǔn)備','項(xiàng)目需求分析','數(shù)據(jù)庫(kù)設(shè)計(jì)分析','創(chuàng)建項(xiàng)目','基礎(chǔ)配置','歡迎頁(yè)面','創(chuàng)建數(shù)據(jù)庫(kù)模型',]context = {'sitename': sitename,'url':url, 'list':list, #把list封裝到context}return render(request,'index.html',context)2、在模板文件index.html添加如下代碼:
templates/index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>MyBlog</title> </head> <body> <h3>網(wǎng)站名:{{ sitename }}</h3> <h3>域名:{{ url }}</h3> {#新下面的代碼#} <div><ul><h4>Blog教程目錄:</h4>{% for list in list %}<li>{{ list }}</li>{% endfor %}</ul> </div> </body> </html>然后我們?cè)跒g覽器里刷新頁(yè)面,顯示如下:
新加代碼里{% for list in list %}的{% for %}屬于Django模板的內(nèi)置標(biāo)簽,它可以遍歷輸出變量的內(nèi)容。
三、字典
1、在視圖函數(shù)里添加如下代碼:
blog/views.py
def index(request):....#在來(lái)的基礎(chǔ)上新加一個(gè)字典mydict={'name': '吳秀峰','qq': '445813','wx': 'vipdjango','email': '445813@qq.com','Q群': '10218442',}context = {...#把mydict封裝到上下文'mydict':mydict,}return render(request,'index.html',context)2、在模板文件index.html添加如下代碼:
templates/index.html
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>MyBlog</title> </head> <body> ... <!-- 新加如下代碼 --> <div><ul><h4>Blog教程作者信息:</h4>{% for key,values in mydict.items %}<li>{{ key }}:{{ values }}</li>{% endfor %}</ul> </div> </body> </html>新加的代碼里,{% for key,values in mydict.items %} 是遍歷輸出字典里的 key和values的內(nèi)容。
我們刷新頁(yè)面,就能看到新的效果:
上面的就是在模板里調(diào)用變量、列表、字典的方法。當(dāng)然,模板里還有許多內(nèi)置的標(biāo)簽和過(guò)濾器。這里就不一一介紹。后面我們用上的時(shí)候,我會(huì)做特別的提醒。
上述代碼我已經(jīng)上傳到服務(wù)器,請(qǐng)大家自行下載查看:
模板體驗(yàn)代碼.zip
參考鏈接:Django博客開(kāi)發(fā)教程:體驗(yàn)django模板
總結(jié)
以上是生活随笔為你收集整理的Django 3.2.5博客开发教程:体验django模板的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Django 3.2.5博客开发教程:体
- 下一篇: Django 3.2.5博客开发教程:使