DTL語言學習(一)模板變數和{% if %}標籤的使用
阿新 • • 發佈:2018-11-01
目前市面上有非常多的模板系統,其中最知名最好用的就是DTL和Jinja2。
DTL是Django Template Language三個單詞的縮寫,也就是Django自帶的模板語言。當然也可以配置Django支援Jinja2等其他模板引擎,但是作為Django內建的模板語言,DTL能和Django達到無縫銜接而不會產生一些不相容的情況。因此使用Django一般都使用DTL模板系統。
DTL與普通的HTML檔案的區別:
DTL模板是一種帶有特殊語法的HTML檔案,這個HTML檔案可以被Django編譯,可以傳遞引數進去,實現資料動態化。在編譯完成後,生成一個普通的HTML檔案,然後傳送給客戶端。
模板變數的使用
首先新建一個專案,因為是學習DTL語言,就不用新建一個app了,直接在和settings.py同級目錄下新建一個views.py的檔案。
- 如果是用pycharm建立的專案,那麼在app的同級目錄下Django就自動給我們建立好了一個templates的目錄。並且在settings.py中也將模板路徑配置好了的
- 如果時用命令視窗新建的專案,則需要手動在app的同級目錄下建立一個templates的資料夾。並且需要去settings.py中配置好templates模板的路徑。在settings.py中TEMPLATES這個列表中的字典中key為 ‘DIRS’
'DIRS': [os.path.join(BASE_DIR, 'templates')]
注意: 示例程式碼是將配置的模板路徑是在和app的同級目錄下,如果新建在其他位置,請自行修改配置路徑。
然後在templates資料夾中新建一個 'index.html’的檔案
這樣我們需要用到的檔案都建立好了。
首先進入views.py檔案中編寫程式碼:
from django.shortcuts import render
def index(request):
str = '我是變數'
return render(request,'index.html' ,{'str':str})
然後去urls.py中配置url
from django.urls import path
from . import views
urlpatterns = [
path('',views.index),
]
然後切換至templates中的index.html檔案中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DTL 語言</title>
</head>
<body>
{{ str }}
</body>
</html>
然後執行專案,就可以檢視效果了。
只需要修改views.py檔案中index函式中的str的值,我們就能改變傳遞到index.html中的值。
{% if %}標籤的使用
我們在views.py中的index函式中新建一個變數age
並且將它傳遞至index.html中
def index(request):
str = '我是變數'
age = 18
return render(request,'index.html',{'str':str,'age':age})
然後我們在index.html中使用{% if %}標籤進行判斷。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>DTL 語言</title>
</head>
<body>
{{ str }}
{% if age < 18 %}
<p>你還沒有成年</p>
{% elif age == 18 %}
<p>你剛剛成年</p>
{% else %}
<p>你已經成年了</p>
{% endif %}
</body>
</html>
然後執行專案,輸入網址,就能夠檢視效果了,可以改變age的值來改變index.html中顯示的文字。
注意:
- 所有的標籤都是在
{%%}
之間。 - if標籤有閉合標籤。就是
{% endif %}
。 - if標籤的判斷運算子,就跟python中的判斷運算子是一樣的。
==、!=、<、<=、>、>=、in、not in、is、is not
這些都可以使用。 - 還可以使用
elif
以及else
等標籤。