2016-03-30 16 views
-1

Flaskアプリケーションの静的フォルダ内のJavaScriptファイルを動的に変更したいとします。Flaskで動的にJavaScriptを変更する

Jinja2は{{ var1 }}render_template(file.html, var1 = x)でHTMLファイルを動的に変更できますが、JavaScriptがHTMLテンプレートに含まれていなくても、FlaskがHTMLをインポートして変更するようにしたいと思います。

Flaskはこれをサポートしていますか、または動的に変更したいJavaScriptをHTMLファイルに入れてrender_templateを使用するだけですか?

+2

:あなたがそうのようなHTMLから設定したいものは何でも変数

きれいな解決策は、おそらく初期化するために、init関数を呼び出すことだろうか?それには何か問題があります。しかし、htmlやjsファイルを生成しても、ジンジャは気にしません。 dynsmic jsファイルのルートを登録し、動的htmlファイルのように配信する必要があります。 – Wombatz

答えて

1

いいえJavaScriptの動的部分をhtmlファイルに移動する必要があります。

Jinja2がテンプレートファイルをレンダリングするとき、読み込まれるファイルはrender_templateで指定されたファイルだけです。あなたの場合はfile.htmlです。換言すれば、フラスコはHTMLを提供するだけである。静的JSファイルはフラスコで処理されている可能性があります。テンプレートエンジンでは処理されません。あなたが動的に静的ファイルを変更したい

<script type="text/javascript" src="/static/sripts/example.js" /> 
<script type="text/javascript"> 
    exampleInitFunction({{var1}}); 
</script> 
+0

これも可能です。別のルートを設定する必要があります。私はそれが良い使用パターンだとは思わない。 –

+0

私はあなたの答えを間違って読んでいました。私はあなたがすべてのコードをインライン展開することを主張していると思いました。ええ、私はJavaScriptのレンダリングを主張しません。 – davidism

関連する問題