django框架模板中定義變量(set variable in django template)的方法分析
本文實例講述了django框架模板中定義變量的方法。分享給大家供大家參考,具體如下:
總有一些情況,你會想在django template中設(shè)置臨時變量,但是django 對在模板中對臨時變量的賦值沒有很好的開箱即用的tag 或者filter。但是還是能通過一些其他方法實現(xiàn)的。
1. 利用 django 自帶的 with 標(biāo)簽實現(xiàn)
2. 利用自定義 tag 實現(xiàn),應(yīng)該靈活很多.
利用 django 自帶的 with 標(biāo)簽實現(xiàn)對變量賦值
好像在django 1.3 之后才支持這種做法
從context中得到值進(jìn)行賦值
{% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %}
當(dāng)然也可以直接給一個常量
{%with age=100%} {{ age|add:"2" }} .... {%with%}
2 自定義標(biāo)簽方式現(xiàn)實在django template 中給變量賦值
from django import template register = template.Library() class SetVarNode(template.Node): def __init__(self, var_name, var_value): self.var_name = var_name self.var_value = var_value def render(self, context): try: value = template.Variable(self.var_value).resolve(context) except template.VariableDoesNotExist: value = "" context[self.var_name] = value return u"" def set_var(parser, token): """ {% set <var_name> = <var_value> %} """ parts = token.split_contents() if len(parts) < 4: raise template.TemplateSyntaxError("'set' tag must be of the form: {% set <var_name> = <var_value> %}") return SetVarNode(parts[1], parts[3]) register.tag('set', set_var)
在 template 中應(yīng)用時,現(xiàn)在模板中l(wèi)oad這個標(biāo)簽所在文件。然后用類似如下方式處理
{% load set_var %} {% set a = 3 %} {% set b = some_context_variable %} {% set c = "some string" %}
這樣就實現(xiàn)了在django 模板中 對變量進(jìn)行賦值和處理.
希望本文所述對大家基于Django框架的Python程序設(shè)計有所幫助。
相關(guān)文章
Python基于Twilio及騰訊云實現(xiàn)國際國內(nèi)短信接口
這篇文章主要介紹了Python基于Twilio及騰訊云實現(xiàn)國際國內(nèi)短信接口,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行
這篇文章主要介紹了python3 使用goto跳轉(zhuǎn)執(zhí)行到指定代碼行的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較
這篇文章主要介紹了python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較,在python-numpy使用中,可以用雙層?for循環(huán)對數(shù)組元素進(jìn)行訪問,也可以切片成每一行后進(jìn)行一維數(shù)組的遍歷,下面小編擊來舉例介紹吧,需要的朋友可以參考一下2022-03-03python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作)
這篇文章主要介紹了python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作),具有一定借鑒價值,需要的朋友可以參考下2018-01-01python實現(xiàn)redis三種cas事務(wù)操作
本篇文章主要介紹了python實現(xiàn)redis三種cas事務(wù)操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息詳解
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息,涉及Python3針對mysql數(shù)據(jù)庫的連接、信息存儲等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12