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-06
python3 如何使用 goto 跳轉(zhuǎn)執(zhí)行到指定代碼行
這篇文章主要介紹了python3 使用goto跳轉(zhuǎn)執(zhí)行到指定代碼行的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-05-05
python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較
這篇文章主要介紹了python中的Numpy二維數(shù)組遍歷與二維數(shù)組切片后遍歷效率比較,在python-numpy使用中,可以用雙層?for循環(huán)對數(shù)組元素進(jìn)行訪問,也可以切片成每一行后進(jìn)行一維數(shù)組的遍歷,下面小編擊來舉例介紹吧,需要的朋友可以參考一下2022-03-03
python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作)
這篇文章主要介紹了python+matplotlib繪制簡單的海豚(頂點和節(jié)點的操作),具有一定借鑒價值,需要的朋友可以參考下2018-01-01
python實現(xiàn)redis三種cas事務(wù)操作
本篇文章主要介紹了python實現(xiàn)redis三種cas事務(wù)操作,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息詳解
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之MySQL數(shù)據(jù)庫存儲爬取的信息,涉及Python3針對mysql數(shù)據(jù)庫的連接、信息存儲等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12

