有没有办法用jinja2显示字符串中的第一个图像?

2024-05-14 17:04:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Flask和Jinja2制作一个博客web应用程序,但是我在格式化索引页时遇到了一个问题

我想在每个帖子的标题下显示一个图片,然后是帖子的第一段

{{ post['body'][post['body'].find('<img'):post['body'].find('<br>')]|markdown }} {# the first image to be rendered #}

{{ post['body'][post['body'].find('<p>'):post['body'].find('<br>')]|striptags|markdown }} {# the first paragraph to be rendered #}

post['body']对象是一个格式化为HTML的字符串

第一段渲染,但图像不会

这是我帖子的for循环

{% for post in posts.items %}
      <article class="post">
        <header>
          <div class="post-header">
            <h1><a href="{{ url_for('single_post.post', id=post['id']) }}">{{ post['title'] }}</a></h1>
            <div class="about">by {{ User.query.get(post['author_id']).username }} on {{ post['created_at'].strftime('%Y-%m-%d') }}</div>
          </div>
          {% if g.user['uid'] == post['author_id'] %}
            <a class="action" href="{{ url_for('blog.update', id=post['id']) }}">Edit</a>
          {% endif %}
        </header>
        {{ post['body'][post['body'].find('<img'):post['body'].find('<br>')] }}
        {{ post['body'][post['body'].find('<p>'):post['body'].find('<br>')]|striptags|markdown }}
      <p>...</p>
      </article>
    {% endfor %}

降价过滤器背景:

这是一个过滤器,用于使用Misaka将我的原始html呈现为标记/呈现的html

from flask_misaka import Misaka
...
md = Misaka()

我的代码没有错误,但我只是看不到正在呈现的图像,或者呈现页面的源代码中的任何剩余信息,这很奇怪


Tags: thebrdividimgforbodyfind

热门问题