Flask模板_學習筆記

代碼盡在個人github上面:https://github.com/521xueweihanhtml

概述:
    在Flask中,Jinja2默認配置以下:
        A.擴展名爲.html,.htm,.xml和.xhtml的模板中開啓自動轉義。
        B.在模板中可使用{% autoescape %}來手動設置是否轉義。
        C.Flask在Jinja2環境中加入一些全局函數和輔助對象(下面寫的方法)

1.|safe的做用是關閉轉義字符
    轉義就是對特殊字符進行轉義。特殊字符指的是HTML。
    三種方法關閉轉義:
        a.用Markup對象封裝。
        b.在模板中使用|safe過濾
        c.臨時關閉整個系統的自動轉義——{% autoescape false%}
        
2.{{ 這裏放變量 }}

3.註冊過濾器
    兩個方法:手動放入jinja_env中,要麼使用template_filter()裝飾器git

 a:    @app.template_filter('reverse')
        def reverse_filter(s):
            return s[::-1] # 倒序列表

  b:    def reverse_filter(s):
            return s[::-1]
        app.jinja_env.filters['reverse'] = reverse_filter


一旦註冊成功,你就能夠在模板中像Jinja2的內建過濾其同樣使用過濾器了。  
github

{% for x in mylist | reverse %} # 這裏就能夠按照你註冊的過濾器來進行操做
{% endfor%}

 

 

4.環境處理器的做用是把新的變量自動引入模板環境中,返回是一個字典。——用修飾器:@app.context_processor
    傳遞的能夠是一個變量,也能夠是一個函數
傳遞變量: 
app

@app.context_processor
def inject_user():
    return dict(user = g.user)


            
傳遞函數:   
函數

@app.context_processor
    def utility_processor(): # 處理貨幣轉換的一個方法
        def format_price(amount, currency = u'$'):
            return u'{0:.2f}{1}'.format(amount, currency)
        return dict(format_price = format_price)        

 


上面的例子把format_price函數傳遞給全部模板,能夠在模板中隨意調用spa

{{ format_price(0.33) }}
相關文章
相關標籤/搜索