python - 缩短 HTML 内容 python/django

标签 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中有没有办法关闭所有打开的标签或只获取一定数量的顶级 block ?例如,2 个 block 将是前两个 <p></p>标签。我看到 word press 在显示文章的简短预览时有这个功能。

最佳答案

如果您需要在模板中执行此操作,请查看 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=' ...')

关于python - 缩短 HTML 内容 python/django,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15847315/

相关文章:

python - 如何控制Python格式字符串中科学计数法的准确格式?

javascript - 检查调查是否在过去 5 分钟内完成

javascript - JS 弹出窗口

django - collectstatic 命令在 Django 1.6a1 中不可用

python - 国际化的 Django 应用程序恢复为英语

python - Django 中的关系字段

python - 检查 Python 列表中是否存在键

Python 在 O(n) 解决方案中检查 Anagram

Python 对象矩阵 - 定义属性

javascript - 从按钮列表创建可重复使用的按钮 css/jquery