gpt4 book ai didi

python-2.7 - 项目列表的 Flask 部分 View

转载 作者:行者123 更新时间:2023-12-03 09:30:09 24 4
gpt4 key购买 nike

如果在网站的大多数页面上我都有一个从数据库加载的类别列表或最近的文章——我如何避免使用 flask 和 jinja2 重复代码?

现在的情况是,我有一个 html 文件,其中包括:

{% include '/root/latest_articles.html' %}

然后每个 View 都必须将参数(文章列表)传递给模板。我想避免这种情况。

在 Flask 中实现此目标的最佳方法是什么?

谢谢。

编辑

“附加模板上下文”会起作用。我可以导出一个从数据库加载数据并在“latest_articles.html”模板中访问它的函数。

还有别的办法吗?

最佳答案

您可以添加 additional template context :

@app.context_processor
def additional_context():
return {
'content': get_page_content_context(request.endpoint, g.language),
'hot_links': get_hot_links(),
}

对于模板代码,您可以使用 macrosinclude .

更新:

首先尝试使用template inheritance并在您的页面允许的情况下将您的类别列表或最近的文章放入基本模板中。

您也可以使用“@app.context_processor”使模板代码可变,但我认为这不是个好主意:

@app.context_processor
def additional_context():
return {
'recent_articles_markup': do_mark_safe(render_template(
'root/latest_articles.html', articles=get_recent_articles()),
}

关于python-2.7 - 项目列表的 Flask 部分 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15631443/

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