全局函数和上下文处理器有什么区别?为什么宏里看不到我注入的变量?时间值能不能直接放全局?这篇用同一个应用把它们对比一遍。
{{ utcnow().year }} → 2026
{{ site_url("/a") }} → https://example.test/a
{{ initials("张 三 四") }} → 张三四
{{ SITE_NAME }} v{{ VERSION|join(".") }} → bigywater v1.2.3
{{ from_bp() }} → bp 注册的全局函数
{{ current_path() }} → /page|T
{{ current_path() }} → /page|T
{{ utcnow }} → <function utcnow at 0x107594930>上一篇:自定义 Template Filter;下一篇:自定义 Template Test;上下文处理器:Context Processor。
视图里传 SITE_NAME → 被视图覆盖
import … 默认(不带 context) → 全局:bigywater|处理器变量:看不到|request:/page import … with context → 处理器变量:来自上下文处理器
['config', 'cycler', 'dict', 'g', 'get_flashed_messages', 'joiner', 'lipsum', 'namespace', 'range', 'request', 'session', 'url_for']
全局值 STARTED_AT 两次渲染相同: True 全局函数 now_ts() 两次渲染不同: True
渲染 100 次不使用变量的模板:处理器执行 100 次;全局函数执行 0 次