缩短HTML内容python / django

时间:2013-04-06 05:19:44

标签: python html django

我有一个从数据库中提取HTML内容的系统,如下所示:

<p>This is some text</p>
<p>More text</p>
<p>Third Paragraph</p>

当显示它时,它会显示博客文章内容的简短摘要,但是现在在显示文本时,我已将字符数限制设置为200这样的数字,这将导致摘要如下:

<p>This is some text</p>
<p>More text</

在任何地方切断内容,可能会破坏网页的其余部分。 有没有办法在python中关闭所有打开的标签或只获得一定数量的顶级块?例如,2个块将是前两个<p></p>标签。在显示文章的简短预览时,我看到word press具有此功能。

1 个答案:

答案 0 :(得分:5)

如果您需要在模板中执行此操作,请查看truncatewords-html:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#truncatewords-html

或者在其他地方,您可以使用适用于大多数用例的基础django.utils.text.Truncator类(https://github.com/django/django/blob/1.7/django/utils/text.py#L65),如果您需要某些自定义行为,请将该代码用作自己实现它的参考。

<强>更新

如果你需要直接使用django.utils.text.Truncator,这就是你实例化并调用words()方法的方法(这正是truncatewords-html过滤器的作用)

Truncator(value).words(length, html=True, truncate=' ...')