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

时间:2016-05-14 09:39:41

标签: python regex django

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

如何检查帖子的“文字”是否包含以“#”开头的字词,如果是,请将网址重定向到/ tags / ~word~?

所以f.e.用户可以写一篇帖子'我今天去过#ny,这很酷#yolo #summer'所以它会创建#ny,#yolo,#summer标签并使其成为一个网址重定向到/ tags / ny /,/ tags / yolo /,和/ tags / summer /,

我正在学习python和django只用了一两个星期,这可能是我不知道的一些功能:)

1 个答案:

答案 0 :(得分:0)

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

>>> 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!'

更重要的是确保安全。

您可以使用模板标记,以便您可以像模板中的{% link_tags t %}一样轻松调用它。但是在添加自己的HTML之前,您需要过滤或转义原始HTML。不要对来自用户的未过滤字符串使用mark_safe()!如初。