您好,登錄后才能下訂單哦!
在上一節了解到視圖函數處理后,會將結果渲染到創建的html頁面,但html如何接收并顯示視圖函數返回的動態數據呢?最常用的做法就是使用模板(Template),本節將簡單介紹一下模板的作用和用法。 可以這樣簡單的理解模板的概念,模板是包含了html的靜態部分和模板語法,通過模板語法實現動態數據的插入,最后拼接成完整的靜態html頁面。
A. 定義一個模板如下:
#?index.html <!DOCTYPE?html> <html?lang="en"> <head>???? ????<meta?charset="UTF-8"> ????<title>模板使用說明</title> </head> <body>??? ?????<h2>{{?var_content?}}</h2> </body> </html>
B. 在視圖函數中向模板傳遞數據:
#?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顯示動態數據的問題。 除了{{}}定義變量,模板語言還有其他語法形式。
模板語法主要包括四種結構,如下:
A. 變量
語法形式:{{ variable }} 說明:定義變量,視圖函數中以字典形式傳遞變量值,實現動態數據向html的傳遞;
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。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。