Django handy notes

Django Handy Notes


如何關(guān)閉Django模板的自動(dòng)轉(zhuǎn)義

Django的模板中會(huì)對(duì)HTML標(biāo)簽和JS等語法標(biāo)簽進(jìn)行自動(dòng)轉(zhuǎn)義,原因顯而易見,這樣是為了安全。但是有的時(shí)候我們可能不希望這些HTML元素被轉(zhuǎn)義,比如我們做一個(gè)內(nèi)容管理系統(tǒng),后臺(tái)添加的文章中是經(jīng)過修飾的,這些修飾可能是通過一個(gè)類似于FCKeditor編輯加注了HTML修飾符的文本,如果自動(dòng)轉(zhuǎn)義的話顯示的就是保護(hù)HTML標(biāo)簽的源文件。為了在Django中關(guān)閉HTML的自動(dòng)轉(zhuǎn)義有兩種方式,如果是一個(gè)單獨(dú)的變量我們可以通過過濾器“|safe”的方式告訴Django這段代碼是安全的不必轉(zhuǎn)義。比如:

<p>這行代表會(huì)被自動(dòng)轉(zhuǎn)義</p>: {{ data }}
<p>這行代表不會(huì)被自動(dòng)轉(zhuǎn)義==</p>: {{ data|safe }}

其中第二行我們關(guān)閉了Django的自動(dòng)轉(zhuǎn)義。
我們還可以通過{%autoescape off%}的方式關(guān)閉整段代碼的自動(dòng)轉(zhuǎn)義,比如下面這樣:

{% autoescape off %}
    Hello {{ name }}
{% endautoescape %}

static

To link to static files that are saved in STATIC_ROOT Django ships with a static template tag.For example:

{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>

添加自定義template filter標(biāo)簽

在項(xiàng)目目錄下建立如下的文件夾結(jié)構(gòu)

    templatetags/
    __init__.py
    eryatags.py

eryatags.py:

    from django import template 
    
    register = template.Library()
    
    from util.cryption import Cryption
    
    @register.filter(name='encrypt')
    def encrypt(value):
        if isinstance(value, long) or isinstance(value, int):
            value = str(value)
        return Cryption.encrypt(value)
        

使用
引入filter文件:
{% load eryatags %}
應(yīng)用
{{ dev.id|encrypt }}


model customized saving behavior

If you want customized saving behavior, you can override this save() method.

Model.save(force_insert=False, force_update=False, using=DEFAULT_DB_ALIAS, update_fields=None)

admin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容