开发者社区> 问答> 正文

flask中,如何在首页实现文章摘抄

我需要在网站首页显示文章标题,并在标题下面显示50字左右的文章摘抄.

数据库中的Post类中,有body和body_html两个对象。其中body是存储的markdown格式的文本,body_html是将body转换为html格式后的文本。

我的想法是用正则匹配,但是body中有markdown语法符号,而body_html中带有html标签。都会很影响匹配。

请问有没有其他的方法实现文章摘抄?谢谢。

展开
收起
杨冬芳 2016-06-17 11:12:40 2941 0
1 条回答
写回答
取消 提交回答
  • IT从业

    自己找到了一个比较好的解决方法。来自问自答了。

    flask用的是jinja2模板引擎,jinja2有一些很好用的变量过滤器。

    其中,safe和truncate就是这里要用的。

    •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格式的文章。

    效果:
    screenshot

    2019-07-17 19:42:14
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
JS零基础入门教程(上册) 立即下载
QQ移送页面框架优化实践 立即下载
QQ移动页面框架优化实践 立即下载

相关实验场景

更多