flask中,如何在首页实现文章摘抄
我需要在网站首页显示文章标题,并在标题下面显示 50字 左右的 文章摘抄 .
数据库中的
Post
类中,有
body
和
body_html
两个对象。其中
body
是存储的markdown格式的文本,
body_html
是将
body
转换为
html
格式后的文本。
我的想法是用
正则匹配
,但是
body
中有markdown语法符号,而
body_html
中带有
html
标签。都会很影响匹配。
请问有没有其他的方法实现文章摘抄?谢谢。
xxxLoki
9 years, 4 months ago
Answers
自己找到了一个比较好的解决方法。来自问自答了。
flask用的是
jinja2
模板引擎,
jinja2
有一些很好用的
变量过滤器
。
-
safe 过滤器 渲染值时不转义 ,很适合显示变量中存储的HTML代码。
-
truncate(s, length=255, killwords=False, end='...') 过滤器可以把变量按长度截断,并在末尾加上
“……”
。这就是我想要的效果了。
关于过滤器的细节看文档吧,贴一下我的代码:
<div class="container">
<h1>{{ posts[0].title }}</h1>
<p >{{ posts[0].body_html | safe | truncate(200, True)}}</p>
</div>
这里
post[0]
是flask中输出的
Model
类,
posts[0].body_html
存储了
html
格式的文章。
效果:
私Dバナナ
answered 9 years, 4 months ago