4 Template層- HTML轉義
阿新 • • 發佈:2018-01-24
html標簽 escape djang data return blog ima 標簽 .html
回到頂部
閱讀目錄
- 1.HTML轉義
- 2.會被自動轉義的字符
- 3.關閉轉義
- 4.字符串字面值
1.HTML轉義
- Django對字符串進行自動HTML轉義,如在模板中輸出如下值:
視圖代碼: def index(request): return render(request, ‘temtest/index2.html‘, { ‘t1‘: ‘<h1>hello</h1>‘ }) 模板代碼: {{t1}}
- 顯示效果如下圖:
2.會被自動轉義的字符
- html轉義,就是將包含的html標簽輸出,而不被解釋執行,原因是當顯示用戶提交字符串時,可能包含一些攻擊性的代碼,如js腳本
- Django會將如下字符自動轉義:
< 會轉換為< > 會轉換為> ‘ (單引號) 會轉換為' " (雙引號)會轉換為 " & 會轉換為 &
- 當顯示不被信任的變量時使用escape過濾器,一般省略,因為Django自動轉義
{{ t1|escape }}
回到頂部
3.關閉轉義
- 對於變量使用safe過濾器
{{ data|safe }}
- 對於代碼塊使用autoescape標簽
{ % autoescape off %} {{ body }} { % endautoescape %}
- 標簽autoescape接受on或者off參數
- 自動轉義標簽在base模板中關閉,在child模板中也是關閉的
回到頂部
4.字符串字面值
- 手動轉義
{ { data|default:"<b>123</b>" }}
- 應寫為
{ { data|default:"<b>123</b>" }}
4 Template層- HTML轉義