W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
求值上下文(縮寫為 eval context 或 eval ctx )是 Jinja 2.4 中引入的新對象, 并可以在運行時激活/停用已編譯的特性。
當前它只用于啟用和禁用自動轉(zhuǎn)義,但也可以用于擴展。
在之前的 Jinja 版本中,過濾器和函數(shù)被標記為環(huán)境可調(diào)用的來從環(huán)境中檢查自動 轉(zhuǎn)義的狀態(tài)。在新版本中鼓勵通過求值上下文來檢查這個設(shè)定。
之前的版本:
@environmentfilter
def filter(env, value):
result = do_something(value)
if env.autoescape:
result = Markup(result)
return result
在新版本中,你可以用?contextfilter()?從實際的上下文中訪問求值上下 文,或用evalcontextfilter()?直接把求值上下文傳遞給函數(shù):
@contextfilter
def filter(context, value):
result = do_something(value)
if context.eval_ctx.autoescape:
result = Markup(result)
return result
@evalcontextfilter
def filter(eval_ctx, value):
result = do_something(value)
if eval_ctx.autoescape:
result = Markup(result)
return result
求值上下文一定不能在運行時修改。修改只能在擴展中的 用?nodes.EvalContextModifier?和nodes.ScopedEvalContextModifier?發(fā)生,而不是通過求值上下文對 象本身。
class?jinja2.nodes.EvalContext(environment,?template_name=None)
Holds evaluation time information. Custom attributes can be attached to it in extensions.
True?或?False?取決于自動轉(zhuǎn)義是否激活。
如果編譯器不能在編譯期求出某些表達式的值,為?True?。在運行時應(yīng)該 始終為False?。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: