如何将多行字符串从python保留到html

时间:2018-04-11 09:05:01

标签: python html flask

我在python中发送多行字符串,在HTML中使用此字符串变量进行打印,将其打印为单个字符串。

Python代码:

@app.route("/<faqid>")
@is_logged_in
def faqid(faqid):`enter code here`
    device = """
     class-map match-any eftv6-bun-1
      match access-group ipv6 eftv6-bun 
       end-class-map
      !

    policy-map qp-80 
    class eftv6-bun-1
    set dscp af31
    ! 
    class class-default
    ! 
   end-policy-map
  ! 
     """
    return render_template("faqdetails.html", device=device)

HTML faqdetails.html

<div style="b`enter code here`ackground-color:white;">
    <p style="text-align:left;"> {{device}} </p>
</div>

在网页faqdetails.html中显示为

  

“class-map match-any eftv6-bun-1 match access-group ipv6 eftv6-bun end-class-map!policy-map qp-80 class eftv6-bun-1 set dscp af31!class class-default! end-policy-map!“

2 个答案:

答案 0 :(得分:0)

您需要使用<br>标记替换换行符。

你可能会忘记device = device.replace("\n", "<br>")

或者,这似乎是制作自定义Flask过滤器的一个很好的片段: http://flask.pocoo.org/snippets/28/

只需将其放在某处并按照以下说明进行注册: http://jinja.pocoo.org/docs/2.10/api/#custom-filters

之后,在您的模板中,您应该能够写作 {{ device|nl2br }}

答案 1 :(得分:0)

HTML代码帮助

<div style="background-color:white;">
            <!--<p style="text-align: left font-family:bold;">Answer:</p> 
<br>-->
           {%  set ans = device.split("\n")%}
           {% for answ in ans%}
                <p style="text-align: left; font-family: normal; font-size: 
 16px;"> {{ answ  }} </p>
           {% endfor %}
        </div>

或者

将输出包装在pre标签中..它应该保留字符串的格式,如下所示

<div style="background-color:white;">
            <!--<p style="text-align: left font-family:bold;">Answer:</p> 
          <br>-->
        <pre style="text-align: left; font-family: normal; font- 
        size: 16px; background-color:white;"> {{ device  }} </pre>
    </div>