Python Flask和HTML变量

Python Flask和HTML变量,python,flask,jinja2,jupyter,nbconvert,Python,Flask,Jinja2,Jupyter,Nbconvert,我是flask的新手,但我想将其他库中的一些HTML功能与flask的模板功能集成在一起。在处理变量时,我无法理解呈现HTML的不同行为。有时,如果我将HTML作为变量直接传递给视图,则可以呈现HTML: body = a bunch of HTML @app.route('/') def index(): return ''' {} '''.format(body) 但是,如果我尝试使用{body}}变量将其传递给模板,则不会呈现HTML。相反,我将在页面上看到原始H

我是flask的新手,但我想将其他库中的一些HTML功能与flask的模板功能集成在一起。在处理变量时,我无法理解呈现HTML的不同行为。有时,如果我将HTML作为变量直接传递给视图,则可以呈现HTML:

body = a bunch of HTML
@app.route('/')
def index():
    return '''
    {}
    '''.format(body)
但是,如果我尝试使用{body}}变量将其传递给模板,则不会呈现HTML。相反,我将在页面上看到原始HTML

@app.route('/')
def index():
     return render_template("index.html", b = body)
在“index.html”文件中,我使用
{{b}
模板语法调用它。在这里,我得到了原始的HTML。我觉得我只少了一小块。下面是我分别看到的每种方法


Jinja将转义它解析的所有字符串,以避免意外地将HTML注入模板。要将变量标记为“安全使用原样”,需要使用
safe
模板过滤器

{{ b|safe }}

>b=''
>>>呈现模板字符串('{b}}',b=b)
'a href="#"示例/a'
>>>render_template_字符串({{b | safe}}})
''