猿问

Django 截断单词并​​显示搜索到的单词

我有一个变量sentences包含:

“佩奇的网络爬虫于 1996 年 3 月开始探索网络,佩奇自己的斯坦福主页作为唯一的起点。为了将它为给定网页收集的反向链接数据转换为重要性的衡量标准,布林和佩奇开发了 PageRank算法。在分析 BackRub 的输出时,对于给定的 URL,该输出由按重要性排序的反向链接列表组成,两人意识到基于 PageRank 的搜索引擎会产生比现有技术更好的结果(当时现有的搜索引擎基本上根据搜索词在页面上出现的次数)。”

然后,我在 Django HTML 中使用 truncatewords 来缩短句子的视图。

{{ sentences|truncatewords:30 }}

所以,结果显示:

“Page 的网络爬虫于 1996 年 3 月开始探索网络,Page 自己的斯坦福主页作为唯一的起点。转换它......的反向链接数据。”

实际上,我想truncatewords用一个特定的词来显示结果,例如“BackRub”,所以结果应该是:

“在分析 BackRub 的输出时,对于给定的 URL,该输出包含按重要性排列的反向链接列表,两人意识到基于 PageRank 的搜索引擎会产生......”

有什么解决办法吗?


慕斯王
浏览 154回答 1
1回答

拉风的咖菲猫

我认为你应该编写自己的模板标签来解决这个问题。您可以获得包含特定单词的句子的开头,并从那里开始返回字符串。然后你可以像上面那样截断结果。我相信这不是最好的解决方案。但我认为这是你可以开始的事情。请参阅下面的代码和结果:模板标签中的某处import refrom django import templateregister = template.Library()@register.filterdef findsentencebyword(sentence, word):&nbsp; &nbsp; matches = re.search("([^.]*?" + word + ".*)", sentence)&nbsp; &nbsp; if not matches:&nbsp; &nbsp; &nbsp; &nbsp; return sentence&nbsp; &nbsp; return matches.group()然后在您的模板中加载并使用它,如下所示{% load <templatetag> %}{{ sentences|findsentencebyword:"BackRub"|truncatewords:30 }}结果如下:
随时随地看视频慕课网APP

相关分类

Python
我要回答