如何检查文本是否包含 django 中以 '#' 开头的单词?



我正在尝试在我的博客应用程序上实现标记功能。

我如何检查帖子的"文本"是否包含以"#"开头的单词,如果是,则使其URL重定向到/tags/~word~?

因此,f.e.用户可以写一篇帖子"我今天去过#ny,很酷#yolo#summer",这样它就会创建#ny、#yolo、#summer标签,并使其成为重定向到/tags/ny/、/tags/yolo/和/tags/summer/、的url

我只学习python和django一两周,可能有一些功能我不知道:)

<a href="/tag/links">links</a>替换#tags是中比较容易的部分

>>> import re
>>> t = 'Some #cool text here #whatya think!'
>>> re.sub(r'#(w+)', r'<a href="/tag/1">1</a>', t)
'Some <a href="/tag/cool">cool</a> text here <a href="/tag/whatya">whatya</a> think!'

更重要的是确保它的安全。

您可以使用Template Tag,这样您就可以像模板中的{% link_tags t %}一样轻松地调用它。但是在添加自己的HTML之前,您需要过滤或转义原始HTML。不要对来自用户的未筛选字符串使用mark_safe()!曾经

最新更新