从 web2py 中的 python 字符串呈现 HTML,生成 @usename 链接 python

Rendering HTML from a python String in web2py, generate @usename links python

web2py

中的 python 字符串呈现 HTML

我正在尝试在 web2py

中在服务器端生成的 html 文件中呈现锚点 link
<a href="http://app/default/profile/">@username</a>

和 link 正确生成;然而,当我在视图 {{=link}} 中调用它时,页面不会将其呈现为 HTML。我试过使用

mystring.decode('utf-8')

和其他各种转换。将其传递给 javascript 并返回页面显示 link 罚款。 python 字符串是否与 html 不能很好地通信?

在控制器中,字符串由函数调用生成:

#code barrowed from luca de alfaro's ucsc cmps183 class examples
def regex_text(s):
    def makelink(match):
        # The title is the matched praase @username
        title = match.group(0).strip()
        # The page is the striped title 'username' lowercase
        page = match.group(1).lower()
        return '%s' % (A(title, _href=URL('default', 'profile', args=[page])))
    return re.sub(REGEX,makelink, s) 

def linkify(s):
    return regex_text(s)

def represent_links(s, v):
    return linkify(s)

用 link 替换 @username 到他们的配置文件和 args(0) = username 并通过控制器调用

发送到视图
def profile():
    link = linkify(string)
    return dict(link=link)

为了安全起见,web2py 模板将自动转义通过 {{=...}} 插入的任何文本。要禁用转义,您可以将文本包装在 XML() helper:

{{=XML(link)}}