django框架模板中定義變量(set variable in django template)的方法分析
本文實(shí)例講述了django框架模板中定義變量的方法。分享給大家供大家參考,具體如下:
總有一些情況,你會(huì)想在django template中設(shè)置臨時(shí)變量,但是django 對(duì)在模板中對(duì)臨時(shí)變量的賦值沒(méi)有很好的開(kāi)箱即用的tag 或者filter。但是還是能通過(guò)一些其他方法實(shí)現(xiàn)的。
1. 利用 django 自帶的 with 標(biāo)簽實(shí)現(xiàn)
2. 利用自定義 tag 實(shí)現(xiàn),應(yīng)該靈活很多.
利用 django 自帶的 with 標(biāo)簽實(shí)現(xiàn)對(duì)變量賦值
好像在django 1.3 之后才支持這種做法
從context中得到值進(jìn)行賦值
{% with total=business.employees.count %} {{ total }} employee{{ total|pluralize }} {% endwith %}
當(dāng)然也可以直接給一個(gè)常量
{%with age=100%} {{ age|add:"2" }} .... {%with%}
2 自定義標(biāo)簽方式現(xiàn)實(shí)在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)用時(shí),現(xiàn)在模板中l(wèi)oad這個(gè)標(biāo)簽所在文件。然后用類似如下方式處理
{% load set_var %} {% set a = 3 %} {% set b = some_context_variable %} {% set c = "some string" %}
這樣就實(shí)現(xiàn)了在django 模板中 對(duì)變量進(jìn)行賦值和處理.
希望本文所述對(duì)大家基于Django框架的Python程序設(shè)計(jì)有所幫助。
- 關(guān)于Golang變量初始化/類型推斷/短聲明的問(wèn)題
- go語(yǔ)言 全局變量和局部變量實(shí)例
- 淺談golang并發(fā)操作變量安全的問(wèn)題
- go語(yǔ)言的初始化順序,包,變量,init詳解
- go語(yǔ)言的工作空間和GOPATH環(huán)境變量介紹
- Golang 變量申明的三種方式
- django template實(shí)現(xiàn)定義臨時(shí)變量,自定義賦值、自增實(shí)例
- Golang常用環(huán)境變量說(shuō)明與設(shè)置詳解
- go語(yǔ)言同步教程之條件變量
- go語(yǔ)言學(xué)習(xí)之包和變量詳解
- 詳解Go語(yǔ)言變量作用域
相關(guān)文章
Python基于Twilio及騰訊云實(shí)現(xiàn)國(guó)際國(guó)內(nèi)短信接口
這篇文章主要介紹了Python基于Twilio及騰訊云實(shí)現(xiàn)國(guó)際國(guó)內(nèi)短信接口,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行
這篇文章主要介紹了python3 使用goto跳轉(zhuǎn)執(zhí)行到指定代碼行的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較
這篇文章主要介紹了python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較,在python-numpy使用中,可以用雙層?for循環(huán)對(duì)數(shù)組元素進(jìn)行訪問(wèn),也可以切片成每一行后進(jìn)行一維數(shù)組的遍歷,下面小編擊來(lái)舉例介紹吧,需要的朋友可以參考一下2022-03-03python+matplotlib繪制簡(jiǎn)單的海豚(頂點(diǎn)和節(jié)點(diǎn)的操作)
這篇文章主要介紹了python+matplotlib繪制簡(jiǎn)單的海豚(頂點(diǎn)和節(jié)點(diǎn)的操作),具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)簡(jiǎn)易圖書(shū)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03python實(shí)現(xiàn)redis三種cas事務(wù)操作
本篇文章主要介紹了python實(shí)現(xiàn)redis三種cas事務(wù)操作,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息詳解
這篇文章主要介紹了Python3爬蟲(chóng)學(xué)習(xí)之MySQL數(shù)據(jù)庫(kù)存儲(chǔ)爬取的信息,涉及Python3針對(duì)mysql數(shù)據(jù)庫(kù)的連接、信息存儲(chǔ)等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12