Python Django模板系統(tǒng)詳解
設(shè)置模板路徑
在django項目下創(chuàng)建templats文件來存放html文件

為了減少模板加載調(diào)用過程及模板本身的冗余代碼,Django 提供了一種使用方便且功能強大的 API ,當(dāng)使用模板加載API時,需要將模板路徑告訴框架,在項目settings.py中設(shè)置模板路徑,如圖:
settings.py中的BASE_DIR為項目路徑。

在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)模板引擎遇到變量時,會計算該變量,并將其替換為結(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渲染時通過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)文件
首先在項目根目錄下創(chuàng)建存放靜態(tài)文件的目錄,并在settings中設(shè)置路徑,如下:

STATIC_URL = '/static/'
為靜態(tài)文件引用前綴,當(dāng)引用文件時代表的是文件根目錄,如下:
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)容!
相關(guān)文章
pytorch tensor int型除法出現(xiàn)的問題
這篇文章主要介紹了pytorch tensor int型除法出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-04-04
在python中獲取div的文本內(nèi)容并和想定結(jié)果進(jìn)行對比詳解
今天小編就為大家分享一篇在python中獲取div的文本內(nèi)容并和想定結(jié)果進(jìn)行對比詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01
讓Django支持Sql Server作后端數(shù)據(jù)庫的方法
今天小編就為大家分享一篇讓Django支持Sql Server作后端數(shù)據(jù)庫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
PyTorch與PyTorch?Geometric的安裝過程
這篇文章主要介紹了PyTorch與PyTorch?Geometric的安裝,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04
Python Opencv實戰(zhàn)之印章提取的實現(xiàn)
很多時候我們需要電子版的章,但有些同學(xué)并不會通過Photoshop摳圖獲取。因此本文將利用Python OpenCV來實現(xiàn)印章的提取,感興趣的可以了解一下2022-03-03
Python操作MySQL數(shù)據(jù)庫的基本方法(查詢與更新)
在工作中我們需要經(jīng)常對數(shù)據(jù)庫進(jìn)行操作,比如 Oracle、MySQL、SQL Sever等,這篇文章主要給大家介紹了關(guān)于Python操作MySQL數(shù)據(jù)庫的基本方法包括了數(shù)據(jù)查詢與數(shù)據(jù)更新(新增、刪除、修改),需要的朋友可以參考下2023-09-09

