Django框架(25.Django中的模板继承以及HTML转义)
生活随笔
收集整理的這篇文章主要介紹了
Django框架(25.Django中的模板继承以及HTML转义)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
模板繼承
模板繼承和類的繼承含義是一樣的,主要是為了提高代碼重用,減輕開發(fā)人員的工作量。
典型應用:網站的頭部、尾部信息。
父模板
如果發(fā)現(xiàn)在多個模板中某些內容相同,那就應該把這段內容定義到父模板中。
? 標簽block:用于在父模板中預留區(qū)域,留給子模板填充差異性的內容,名字不能相同。 為了更好的可讀性,建議給? ?endblock標簽寫上名字,這個名字與對應的block名字相同。父模板中也可以使用上下文中傳遞過來的數(shù)據。
{%block 名稱%} 預留區(qū)域,可以編寫默認內容,也可以沒有默認內容 {%endblock 名稱%}子模板
標簽extends:繼承,寫在子模板文件的第一行。
{% extends "父模板路徑"%}子模版不用填充父模版中的所有預留區(qū)域,如果子模版沒有填充,則使用父模版定義的默認值。
填充父模板中指定名稱的預留區(qū)域。
{%block 名稱%} 實際填充內容 {{block.super}}用于獲取父模板中block的內容 {%endblock 名稱%}?HTML轉義
模板對上下文傳遞的字符串進行輸出時,會對以下字符自動轉義。
小于號< 轉換為 <大于號> 轉換為 >單引號' 轉換為 '雙引號" 轉換為 "與符號& 轉換為 &關閉轉義
過濾器escape可以實現(xiàn)對變量的html轉義,默認模板就會轉義,一般省略。
{{t1|escape}}過濾器safe:禁用轉義,告訴模板這個變量是安全的,可以解釋執(zhí)行。
{{data|safe}}標簽autoescape:設置一段代碼都禁用轉義,接受on、off參數(shù)。
{%autoescape off%} ... {%endautoescape%}例如: 給頁面?zhèn)鬟f一個? ? {'content': '<h1>hello</h1>'}
<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>模板轉義</title> </head> <body>html 轉義:<br/>默認沒有關閉轉義 : {{ content }}<br/>使用safe過濾器關閉轉義:{{ content|safe }}<br/>使用autoescape關閉轉義:{% autoescape off %}{{ content }}{% endautoescape %}<br/>模板的硬編碼,默認不會經過轉義:{{ test|default:'<h2>hello<h2/>' }}<br/>手動進行轉義{{ test|default:'<h1>hello</h1>' }} </body> </html>? ?然后網頁上就展示出
??
總結
以上是生活随笔為你收集整理的Django框架(25.Django中的模板继承以及HTML转义)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Django框架(24.Django中的
- 下一篇: Django2中使用xadmin