Python Django模板系統(tǒng)詳解
設(shè)置模板路徑
在django項(xiàng)目下創(chuàng)建templats文件來存放html文件
為了減少模板加載調(diào)用過程及模板本身的冗余代碼,Django 提供了一種使用方便且功能強(qiáng)大的 API ,當(dāng)使用模板加載API時(shí),需要將模板路徑告訴框架,在項(xiàng)目settings.py
中設(shè)置模板路徑,如圖:
settings.py
中的BASE_DIR
為項(xiàng)目路徑。
在TEMPLATES
中的BIRS
來設(shè)置模板路徑
templates
下編寫index.html
寫入如下代碼:
!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首頁</title> </head> <body> <h1>hello world!</h1> </body> </html>
視圖文件view.py中編寫如下代碼,通過render渲染html文件:
from django.shortcuts import render # 獲取對應(yīng)模板通過render渲染 def index(request): return render(request, 'index.html')
結(jié)果如下:
模板變量
Django模板中使用{{ }}來表示變量:
{{ 變量名 }}:變量名由字母數(shù)字和下劃線組成,其值可以是任何數(shù)據(jù)類型
舉例如下:
當(dāng)模板引擎遇到變量時(shí),會(huì)計(jì)算該變量,并將其替換為結(jié)果
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首頁</title> </head> <body> <h3>{{ content }}</h3> <h3>{{ info }}</h3> </body> </html>
view.py
中render
渲染時(shí)通過context以字典形式傳遞值:
from django.shortcuts import render def index(request): content = 'hello world' info = {'name': 'test', 'age': 18} return render(request, 'index.html', context={'content': content, 'info': info})
模板中支持以下語法:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首頁</title> </head> <body> <h3>{{ content }}</h3> <!-- 獲取字典中key的值 --> <h3>{{ info.name }}</h3> <!-- 通過索引獲取列表的值 --> <h3>{{li.1}}</h3> <!-- 調(diào)用不帶參數(shù)的方法 --> <h3>{{ fun }}</h3> <!-- 獲取對象屬性 --> <h3>{{ obj.name }}</h3> </body> </html>
view.py:
from django.shortcuts import render def index(request): content = 'hello world' info = {'name': 'test', 'age': 18} li = [1, 2, 3] class Obj: def __init__(self, name): self.name = name M = Obj('對象屬性:MING') def fun(): return '方法:fun' return render(request, 'index.html', context={'content':content,'info': info,'li': li,'fun': fun,'obj': M})
引用靜態(tài)文件
首先在項(xiàng)目根目錄下創(chuàng)建存放靜態(tài)文件的目錄,并在settings中設(shè)置路徑,如下:
STATIC_URL = '/static/'
為靜態(tài)文件引用前綴,當(dāng)引用文件時(shí)代表的是文件根目錄,如下:
static
代表的是statics
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首頁</title> </head> <body> <!-- 圖片 --> <img src="/static/img/123.jpg" alt=""> </body> </html>
view.py:
from django.shortcuts import render def index(request): return render(request, 'index.html')
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注本站的更多內(nèi)容!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。