You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Flask与Jinja2从SQL数据库获取网页标题?

在Jinja2中直接调用Python函数的方法

要实现模板里直接调用create_title(),核心是把这个函数注册到Jinja2的全局环境中,这样所有模板都能直接访问它,不用每个端点手动传参。

通用Jinja2环境配置

如果你是直接使用Jinja2库、不依赖Web框架,可以这样配置环境:

from jinja2 import Environment, FileSystemLoader

# 初始化Jinja2环境,指定你的模板文件夹路径
env = Environment(loader=FileSystemLoader("templates"))

# 将函数添加到全局变量字典
env.globals["create_title"] = create_title

之后用这个配置好的env对象渲染模板,就能在模板里直接写{{ create_title() }}调用函数了。

Flask框架场景(最常用)

如果用Flask开发,有两种更简便的方式:

方式1:使用上下文处理器

上下文处理器会自动把指定函数注入到所有模板的上下文里:

@app.context_processor
def add_global_functions():
    return {"create_title": create_title}

方式2:直接更新Jinja全局变量

也可以直接把函数添加到Flask的Jinja环境全局中:

app.jinja_env.globals.update(create_title=create_title)

注意事项

  • 确保create_title()里的数据库连接connection在函数调用时是有效的,避免出现连接已关闭的错误。你的代码里用with语句处理游标,这点已经做得很规范。
  • 如果函数执行耗时较长,建议添加缓存逻辑,避免每次渲染模板都查询数据库,影响页面加载性能。

内容的提问来源于stack exchange,提问作者Daniel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 20:52:33