Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何显示html标记?_Python_Html_Flask - Fatal编程技术网

Python 如何显示html标记?

Python 如何显示html标记?,python,html,flask,Python,Html,Flask,所以我对HTML是新手。我正在用flask构建一个web应用程序。我试图可视化一些HTML标记,但它没有正确显示 我有以下方法: @app.route('/predict',methods=['GET','POST']) def api(): if request.method == "POST": input_data = request.form['rawtext'] output_data = model_api(input_data)

所以我对HTML是新手。我正在用flask构建一个web应用程序。我试图可视化一些HTML标记,但它没有正确显示

我有以下方法:

@app.route('/predict',methods=['GET','POST'])
def api():
    if request.method == "POST":

        input_data = request.form['rawtext']
        output_data = model_api(input_data)
        alignedText = output_data["words"]
        predictions = output_data["predictions"]
        #response = jsonify(output_data)
        print(predictions, flush=True)

        if request.values.get('type') == 'image':
            text = output_data["text"]
            ents = turnIntoSpacyFormat((predictions))
            inp = {"text": text, "ents": ents, "title": None}
            htmlm = displacy.render(inp, style="ent", manual=True)

            return render_template('index.html', text=alignedText, predictions=predictions, htmlm=htmlm)
        else:
            return render_template('index.html', text=alignedText, predictions=predictions)
    else:
        return render_template('index.html')
函数displacy.render返回html标记。我正在将其传递到index.html。我试图打印的部分如下所示(最后几行):


文本:{{Text}

实体:{{predictions}


没有正确显示 {{htmlm}}
我在想我可以让它显示在html页面上:{{htmlm}

显然,这会打印标记的字符串表示形式。首先我想可能是标记有问题。但是,当我在html文件中输入完全相同的on时,就像{{htmlm}}命令上方的一行一样,它会按需要显示出来

下面是打印的内容: 第一行是所需的,通过将html标记粘贴到html文件中显示。第二个输出是通过访问htmlm变量得到的


有人知道怎么做吗?

生成的HTML正在转义;您需要将其标记为
{{htmlm|safe}

根据:

。。。默认配置为无自动转义;对于各种 原因:

  • 转义除安全值以外的所有内容也意味着Jinja转义已知不包含HTML的变量(例如数字、, (布尔)这可能是一个巨大的性能打击
  • 关于变量安全性的信息非常脆弱。通过强制安全值和不安全值,返回值 是双转义HTML
但是,在许多情况下,自动转义设置为默认值:

除非定制,否则Jinja2通过烧瓶配置如下:

  • 使用render_template()时,所有以.html、.htm、.xml以及.xhtml结尾的模板都启用了自动转义
  • 使用render_template_string()时,所有字符串都启用自动转义。模板可以选择加入/退出 使用{%autoescape%}标记自动转义
  • Flask在Jinja2上下文中插入了几个全局函数和帮助程序,以及 默认

正在转义生成的HTML;您需要将其标记为
{{htmlm|safe}

根据:

。。。默认配置为无自动转义;对于各种 原因:

  • 转义除安全值以外的所有内容也意味着Jinja转义已知不包含HTML的变量(例如数字、, (布尔)这可能是一个巨大的性能打击
  • 关于变量安全性的信息非常脆弱。通过强制安全值和不安全值,返回值 是双转义HTML
但是,在许多情况下,自动转义设置为默认值:

除非定制,否则Jinja2通过烧瓶配置如下:

  • 使用render_template()时,所有以.html、.htm、.xml以及.xhtml结尾的模板都启用了自动转义
  • 使用render_template_string()时,所有字符串都启用自动转义。模板可以选择加入/退出 使用{%autoescape%}标记自动转义
  • Flask在Jinja2上下文中插入了几个全局函数和帮助程序,以及 默认

我很好奇如果你使用
{{htmlm | safe}}
谢谢,伙计,这很有效!你能告诉我它是干什么的吗?谷歌搜索没有给我任何结果。好吧,没关系,只是找到了。我很好奇如果你使用
{{htmlm | safe}}
会发生什么,谢谢你,伙计,这很有效!你能告诉我它是干什么的吗?谷歌搜索没有给我任何结果。好吧,没关系,只是找到了。
      <!-- Result Display-->
  <section class="section section-solutions-about grey darken-2">
 <div class="container white-text">

      <!--   Icon Section   -->
      <div class="row">
        <div class="col s12 m6">
          <div class="icon-block">

            <!--<h5 class="center">Your Text</h5>-->
             <p>Text:&nbsp;&nbsp;&nbsp;&nbsp; <span style="color:#0091EA;">{{ text }} </span></p>
            <!--<p class="light">{{ctext}}</p>-->
            <div class="alert alert-info" role="alert"><p>Entities: <span style="color:#0091EA;">{{ predictions }} </span></p><br/>
            </div>

          </div>
        </div>

      </div>
     <div class="entities" style="line-height: 2.5; direction: ltr"> Doesn't show up correctly</div>
     {{ htmlm }}

  </div>
</section>