gpt4 book ai didi

python - 如何不每次都为 Flask 中的静态文件重新定义 url

转载 作者:太空狗 更新时间:2023-10-29 22:00:51 24 4
gpt4 key购买 nike

我的应用有很多使用同一组静态文件的路由。

我必须像这样为每条路线定义它们:

css_reset = url_for("static", filename="reset.css")
css_main = url_for("static", filename="main.css")
css_fonts = url_for("static", filename="fonts.css")

js_jquery = url_for("static", filename="jquery-1.7.2.min.js")
js_main = url_for("static", filename="main.js")

然后,当我呈现一个模板时,它看起来像这样:

return render_template("person.html",
css_main=css_main,
css_reset=css_reset,
css_fonts=css_fonts,
js_jquery=js_jquery,
js_main=js_main)

我是 flask 和 python 的新手,我认为我正在做的事情有点荒谬。我可以在一个地方定义它们,然后只在我的模板中使用,而不是在每个路由定义中复制和粘贴吗?

最佳答案

不必每次都将这些变量传递给您的模板,您可以在 Jinja 中将它们注册为全局变量:

app.jinja_env.globals.update(
css_reset=url_for("static", filename="reset.css"),
css_main=url_for("static", filename="main.css"),
...
)

或者,更好的是,注册一个辅助函数:

app.jinja_env.globals['static'] = (
lambda filename: url_for('static', filename=filename))

然后在你的模板中:

<link ref=stylesheet href="{{ static('main.css') }}">

关于python - 如何不每次都为 Flask 中的静态文件重新定义 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11709746/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com