use*_*981 3 jinja2 flask flask-sqlalchemy
目前我正在使用带烧瓶的jinja2,并在数据库中使用ckeditor存储了博客文章.
理想情况下,数据应首先显示图像,然后跟随博客文章和其他一些外部链接到flikr的图像.
我知道我可以使用{{ post.body | safe}}单个帖子里面的内容来显示html作为真实图像而不是html文本.
但是,我怎么不显示HTML,但在有多个链接到不同prosts和节录没有像HTML出现在网页后只显示文本摘要.
在这种情况下"这篇帖子专门用于xyz"应该是摘录
database body= column
<img alt="15189057555_7670752b57_o" class="main" src="https://farm6.staticflickr.com/5584/15189057555_7670752b57_o.jpg" style="width:100%;max-width:1920px"><p>This post is dedicated to xyz</p>
Run Code Online (Sandbox Code Playgroud)
Jinja2的
'post'是一个帖子对象.我试图将摘录限制为100个字母,而不使用html标签和图像.
{{post.body[:100]}}... 将会呈现 <img alt="15189057555_7670752b57_o" class="main" src="https://farm6.staticflickr.com/5584/1518905755...
以下是循环浏览所有帖子的代码摘录,以提供指向单个博客页面的链接,时间戳以及博客内容的摘录.
<h1>Latest Posts</h1>
{% if posts %}
{% for post in posts%}
<div class="post">
<h2><a href="post/{{post.postid}}">{{post.title}}</a></h2>
<h6>{{post.timestamp.strftime('%a %y/%m/%d')}}</h6>
<p>{{post.body[:100]}}...</p>
<p>Posted By: {{post.author.nickname}}</p>
</div>
{% endfor %}
{% else %}
<h4>No blog posts currently</h4>
{% endif%}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来设计它?如果是这样,怎么样?请记住,我希望能够在一篇博文中插入多个图像和文本.
感谢你的帮助!
您必须查看Jinja 的striptags和truncate过滤器http://jinja.pocoo.org/docs/dev/templates/#builtin-filters
例:
>>> from jinja2 import Template
>>> template = Template('blogpost: {{ post|striptags }}!')
>>> template.render(post='<img alt="15189057555_7670752b57_o" class="main" src="https://farm6.staticflickr.com/5584/15189057555_7670752b57_o.jpg" style="width:100%;max-width:1920px"><p>This post is dedicated to xyz</p>')
u'blogpost: This post is dedicated to xyz!'
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您想要剥离标签,并限制为100个字符,所以替换
<p>{{post.body[:100]}}...</p>
Run Code Online (Sandbox Code Playgroud)
通过
<p>{{post.body|striptags|truncate(100)}}</p>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1150 次 |
| 最近记录: |