webpy - url自动检测字符串的某些部分以进行超链接

时间:2014-01-16 10:55:11

标签: python web.py

我使用webpy创建了一个示例博客应用程序。我在这里使用了一些代码(Replace URL with a link using regex in python)来替换URL,但是当我渲染页面时,它不会显示超链接而只显示纯文本

在我的模板中:

    <p>
    <i>$datestr(post.posted_on) by $user</i><br/><br/>
    $urlify.formatstring(post.content)
    <p>

urlify.py

    def formatstring(self, value):
    pat1 = re.compile(r"(^|[\n ])(([\w]+?://[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)

    pat2 = re.compile(r"(^|[\n ])(((www|ftp)\.[\w\#$%&~.\-;:=,?@\[\]+]*)(/[\w\#$%&~/.\-;:=,?@\[\]+]*)?)", re.IGNORECASE | re.DOTALL)
    value = pat1.sub(r'\1<a href="\2" target="_blank">\3</a>', value)
    value = pat2.sub(r'\1<a href="http://\2" target="_blank">\3</a>', value)

    return value

示例文字:

这个网址会让你的生活变得轻松!所以不要点击这个。&lt; a href =“http://www.someurl.com”&gt; some url &LT; 的/ A&GT;

在呈现页面之后应该是:

这个网址会让你的生活变得轻松!所以不要点击这个。some url

但实际是:

这个网址会让你的生活变得轻松!所以不要点击这个。&lt; a href =“http://www.someurl.com”&gt; some url &LT; 的/ A&GT;

网址未更改为超链接。

编辑:在我的模板中: 而不是$ content,应该是$:content将url视为超链接。

1 个答案:

答案 0 :(得分:0)

代码似乎没问题,您可以发布您传递给formatstring方法的参数