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