Django web開發系列(五)模板

一 前言

在上一節瞭解到視圖函數處理後,會將結果渲染到建立的html頁面,但html如何接收並顯示視圖函數返回的動態數據呢?最經常使用的作法就是使用模板(Template),本節將簡單介紹一下模板的做用和用法。 能夠這樣簡單的理解模板的概念,模板是包含了html的靜態部分和模板語法,經過模板語法實現動態數據的插入,最後拼接成完整的靜態html頁面。html

二 模板應用舉例

A. 定義一個模板以下:前端

# index.html
<!DOCTYPE html>
<html lang="en">
<head>    
    <meta charset="UTF-8">
    <title>模板使用說明</title>
</head>
<body>   
     <h1>{{ var_content }}</h1>
</body>
</html>

B. 在視圖函數中向模板傳遞數據:python

# views.py
from django.shortcuts import render

def index(request):
   return render(request,'index.html',{" var_content ":"Hello World!"})


經過上面實例能夠看出,事先建立的html不須要硬編碼,經過{{ var_content }}定義的變量,就能夠接收視圖函數以字典形式傳遞的參數值(Hello World!)。於是,經過這種方式解決了前面提到的html顯示動態數據的問題。 除了{{}}定義變量,模板語言還有其餘語法形式。django

三 基本模板語法

模板語法主要包括四種結構,以下:微信

A. 變量app

語法形式:{{ variable }} 說明:定義變量,視圖函數中以字典形式傳遞變量值,實現動態數據向html的傳遞;ide

B. 標籤函數

語法形式:{% tag %} 說明:經過標籤能夠實現靈活的結構控制、輸出內容、加載外部信息到模板;部分經常使用標籤以下:學習

{% csrf_token %} # csrf標籤、用於跨站請求僞造保護
{% for ... in ... %} # for標籤,用於循環

 …
 
{% endfor %}
{% if ...%}  # if標籤,用於邏輯判斷

{% elif ...%}

{% else %}

{% endif %}

C. 過濾器編碼

語法形式:{ { 變量|過濾器 }} 說明:過濾器主要用於修改變量或標籤參數的值,如:

{{ my_date|date:"Y-m-d" }} # 按指定的格式"Y-m-d",顯示日期

D. 註釋

語法形式:

{% comment %} # comment標籤 ,用於註釋

    ...
    
{% endcomment %}
{# … #} # 單行註釋

模板語法毫不僅限於此,在此只是說明,經過模板語法能夠實現動態html的生成,最終將後臺處理結果恰到好處的顯示在前端頁面。


四 其餘資源

關於python學習、分享、交流,筆者開通了微信公衆號【小蟒社區】,感興趣的朋友能夠關注下,歡迎加入,創建屬於咱們本身的小圈子,一塊兒學python。

相關文章
相關標籤/搜索