gpt4 book ai didi

Flask 渲染图像(和数据)

转载 作者:行者123 更新时间:2023-12-03 17:10:19 25 4
gpt4 key购买 nike

我有一个非常简单的博客站点,由 Flask 和 peewee orm 支持。仅( Markdown )帖子和图片。图像有图像文件(显然)、标题和简要说明。我希望能够添加一个过滤器或标签或其他东西,并且基本上在我的帖子的 Markdown 中放入类似 {{ img.id|3 }} 的内容并让它使用 id=3 渲染图像在 div ,带有标题和描述?

最佳答案

您可以使用宏和 Python 函数来实现。

首先,添加一个全局模板。

@app.template_global()
def get_image(id):
# not sure if this is the way to do it with peewee
return Image.select().where(Image.id == id).get()

这样就可以调用 {{ get_image(id=3) }}并获取图像对象。当然,它仍然不能解决你的问题。

要以您想要的方式生成 HTML,请创建一个 Jinja2 宏来生成您的 HTML block 。
{% macro img(id) %}
{% set obj = get_image(id) %} {# here I'm calling the template global function #}
<img src="{{ obj.url }}" />
<span class="title">{{ obj.title }}</span>
<span class="description">{{ obj.description }}</span>
{% endmacro %}

现在,您可以调用 {{ img(id=3) }}甚至 {{ img(3) }}img 打印 HTML宏。

在这里,我假设您的对象为 url , titledescription .如果您有提供图片的路线,也许您想要的是 url_for('some_route', id=id)而不是 {{ obj.url }} .

当然,您可以从我的 get_image 提供 HTML函数甚至从我的宏中查询您的数据库,但这样我就分离了关注点。

关于Flask 渲染图像(和数据),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431833/

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