2016-10-25 3 views
0

私は美しいスープを使ってローカルHTML文書を解析しようとしていますが、render_template()の結果はjinja2を使っています。美しいスープを使ってHTMLを解析し、jinja2のテンプレートをレンダリングします

私は、Pythonに新たなんだけど、ここで私がしようとしているものです:私は右render_template()メソッド内から値を置換するために管理

@app.route("inherit/index") 
def inheritIndex(): 
    soup = BeautifulSoup(open("templates/index.html"), "html.parser") 
    soup.find(text="foobar").replaceWith("Hooray!") 
    return render_template(soup) 
+1

問題は何ですか? BTW。 'render_template'はBSオブジェクトではなくファイル名を要求します。多分あなたは[render_template_string()](http://flask.pocoo.org/docs/0.11/api/#flask.render_template_string) – furas

+0

が必要です。私の問題は、BSを使って解析されたものからjinja2テンプレートをレンダリングしようとしています。あなたの提案に感謝しますが、それは助けにはなりません。 – whatevermike

+1

BSは結果をHTML文字列として与えることができ、 'render_template(filename)'でそれを使用するためにファイルに保存するか、 'render_template_string(html_string)' – furas

答えて

1

を。 BeautifulSoupは必要ありませんでした。私の解答はコメントの中に示唆されています。

HTML:

... 
<p> {{ foobar }} lorem ipsum dolor...</p> 
... 

のPython:

@app.route("inherit/index") 
    def inheritIndex(): 
    return render_template("index.html", foobar="Hooray!") 

    # <p> Hooray! lorem ipsum dolor...</p> 
関連する問題