【问题标题】:I want to allow html in my own text but that text is being escaped我想在我自己的文本中允许 html,但该文本正在被转义
【发布时间】:2015-10-20 19:39:08
【问题描述】:

我的 html 模板包含以下代码。

<a href="{{ url }}">{{ url_linktext }}</a>{{url_linktextmore}}

我的 Python 代码包含以下 sn-p。

class MainPage(webapp.RequestHandler):
    def get(self):
                        url_linktextmore = '  after you signin. <strong> You may have mispelled your group. </strong>'
                    template_values = {
                        'url': url,
                        'url_linktext': url_linktext,
                        'url_linktextmore': url_linktextmore,
                        }
                    path = os.path.join(os.path.dirname(__file__), 'place.html')
                    self.response.out.write(template.render(path, template_values))

我的问题是strong 正在被自动模板系统转义(例如,&lt;),我不知道如何保持粗体类型。这似乎适用于我的应用程序的早期版本,但不再适用。

这可能与“魔术引号”有关,但我不知道如何关闭“功能”。

布莱恩在亚特兰大

【问题讨论】:

    标签: python google-app-engine html-escape-characters


    【解决方案1】:

    如果您使用的是 Jinja2 模板,您可以执行以下操作:

    {{ url_linktext|safe }}
    

    有关 Jinja2 HTML 转义,请参阅 this link

    请注意,只有在您的 jinja2 环境中添加了“autoescape”扩展程序时,才需要“安全”过滤器。例如:

    JINJA_ENVIRONMENT = jinja2.Environment(
        loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
        extensions=['jinja2.ext.autoescape'])
    

    删除此扩展程序可能更适合您。

    【讨论】:

    • 也许 OP 最好保持自动转义,因为在某些情况下他可能不希望用户发布不安全的文本。
    • 按照您的建议使用save,不仅有助于我给出的示例,更重要的是解决了我刚刚注意到的验证码问题。
    猜你喜欢
    • 2017-11-22
    • 2015-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多