HTML轉義
- Django對字符串進行自動HTML轉義,如在模板中輸出如下值:
視圖代碼:
def index(request):
return render(request, 'temtest/index2.html',
{
't1': '<h1>hello</h1>'
})
模板代碼:
{{t1}}

會被自動轉義的字符
- html轉義,就是將包含的html標簽輸出,而不被解釋執行,原因是當顯示用戶提交字符串時,可能包含一些攻擊性的代碼,如js腳本
- Django會將如下字符自動轉義:
< 會轉換為<
> 會轉換為>
' (單引號) 會轉換為'
" (雙引號)會轉換為 "
& 會轉換為 &
- 當顯示不被信任的變量時使用escape過濾器,一般省略,因為Django自動轉義
{{t1|escape}}
關閉轉義
{{ data|safe }}
{ % autoescape off %}
{{ body }}
{ % endautoescape %}
- 標簽autoescape接受on或者off參數
- 自動轉義標簽在base模板中關閉,在child模板中也是關閉的
字符串字面值
{ { data|default:"<b>123</b>" }}
{ { data|default:"<b>123</b>" }}