2017-11-14 10 views
1

私は<canvas> something </canvas>要素を含む列を含むデータフレームを持っています。 flaskアプリケーションでは、df.to_html()を使用してこのデータをテンプレートに渡しましたが、表示されたhtmlテーブル内には常に動作していません。<canvas>が表示されます。フラスコのto_htmlを使用してhtml要素を渡す

I intend to let the canvas element be captured by a <code>chartjs</code> function

答えて

1

を解決するためのオプションto_html(escape=False)を利用しなければならなかったことに気づいた、私たちはFalseescape属性を変更する必要があります。デフォルトでto_htmlメソッドは、文字<, >, and &をHTML安全なシーケンスに変換するためです。また、テンプレートファイルにsafeフィルタを使用して、タグを表の中に表示する必要があります。

FlaskテンプレートでHTMLを正しく表示する方法をすでに知っているので、今後の読者のための操作の例を挙げています。

app.pyたちは、テンプレートでレンダリングしたいhtmlタグ付きデータフレームが含まれています

import pandas as pd 
from flask import Flask, render_template 

def get_panda_data(): 
    tags = ["<h1>Example header</h1>", 
      '<div style="color: red;">Example div</div>', 
      '<input type="text" name="example_form" \ 
placeholder="Example input form">' 
     ] 
    pd.set_option('display.max_colwidth', -1) 
    tags_frame = pd.DataFrame(tags, columns = ["Tag Example"]) 
    tags_html = tags_frame.to_html(escape=False) 
    return tags_html  

app = Flask(__name__) 

@app.route('/') 
def index(): 
    html_data = get_panda_data() 
    return render_template("dataframe_example.html", html_data = html_data) 

if __name__ == '__main__': 
    app.run(debug = True) 

はその後dataframe_example.htmlあるテンプレートファイルに我々は簡単にパンダto_html方法によって生成されたデータテーブルを表示することができます

<!DOCTYPE html> 
<html> 
<head> 
    <title>Dataframe Flask Example</title> 
</head> 
<body> 
    <h1>Dataframe Flask Example</h1> 
     {{ html_data | safe }} 
</body> 
</html> 

出力は次のようになります。

dataframe_template_html

0

私は文字にto_html()方法で<, >, and &兆候を示す有効にするには、この問題

関連する問題