Flask HTML Escape装饰器

lyn*_*hey 1 python flask

如何在HTML路由上使用装饰器来转义其输出.也就是说,我如何在html_escape这里编写函数:

@app.route('/')
@html_escape
def index():
    return '<html></html>'
Run Code Online (Sandbox Code Playgroud)

(我觉得应该有这个和其他简单的装饰者的扩展)

lor*_*. j 8

Flask有自己的escapedoc:flask.escape

所以你可以:

from flask import escape

@app.route('/')
def index():
    return escape("<html></html>")
Run Code Online (Sandbox Code Playgroud)

如果你坚持使用装饰器:

from functools import wraps
from flask import escape

def my_escape(func):
    @wraps(func)
    def wrapped(*args, **kwargs):
        return escape(func(*args, **kwargs))
    return wrapped

@app.route('/')
@my_escape
def index():
    return "<html></html>"
Run Code Online (Sandbox Code Playgroud)

  • flask.escape 转义:`&amp; &lt; &gt; '”` cgi.escape 转义:`&amp; &lt; &gt;` 并且如果设置了标志`”`。 (2认同)