フラスコのテンプレートと静的ファイル


導入


テンプレートと静的なファイルは、Web開発の様々な側面に役立ちます.
以前のチュートリアルでは、我々はどのようにフラスコでは、チュートリアルで使用される方法では、大規模なプロジェクトで使用することはできませんこんにちは世界プログラムを実行する方法を学んだ.

なぜテンプレート?


大きなプロジェクトに取り組んでいる間、ブラウザで大きなHTMLコードをレンダリングする必要があります.その上、我々はHTMLファイルでHTMLコードを保存して、Flickrアプリで神社テンプレートエンジンの助けを借りてレンダリングします.
そこで、このチュートリアルでは、どのようにテンプレートと静的なファイルを使用してフラスコに表示されます.

テンプレートのレンダリング


テンプレートをレンダリングするには、テンプレートを保存できるテンプレートサブフォルダを作成する必要があります.デフォルトでは、フラスコは、アプリケーションフォルダ内のテンプレートサブフォルダにテンプレートを探します.
ここでは、テンプレートをフラスコにレンダリングするコードです.
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
    return render_template("home.html")

if __name__=="__main__":
    app.run(debug=True)
テンプレートをレンダリングするにはrender_template 関数.このrender_template 関数はJinja 2テンプレートエンジンをアプリケーションと統合します.ファイル名(テンプレート名)を最初の引数として受け取ります.追加引数は、テンプレートで参照される変数の実際の値を表すキー/値のペアです.

テンプレートの変数の使用


テンプレートの変数の使用方法を理解しましょう.
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/")
def home():
    name = "Sam"
    return render_template("home.html", name=name)

if __name__=="__main__":
    app.run(debug=True)
上記のコードでは、追加引数を追加しますname どのテンプレートを使用しますかhome.html .
htmlのHTMLコードは、ここにありますHome.html .
<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Home</title>
</head>

<body>
    <h1> Hello {{ name }} </h1>
</body>

</html>

The {{ name }} テンプレート参照で使用される構成name 変数(追加引数)をここに置く必要があります.
Jinja 2は任意の型の変数を認識できます.これは、リスト、辞書やオブジェクトなどの複雑な種類を認識することができます.テンプレートで使用される変数の例を次に示します.
<p>A value from a dictionary: {{ mydict['key'] }}.</p>
<p>A value from a list: {{ mylist[3] }}.</p>
<p>A value from a list, with a variable index: {{ mylist[myintvar] }}.</p>
<p>A value from an object's method: {{ myobj.somemethod() }}.</p>

静的ファイル


サイトをより魅力的にするために、静的ファイルが必要です.強力なアプリケーションは、JavaScript、画像やCSSのような静的ファイルなしで有用であることはできません.
アプリケーションで静的ファイルを使用するにはstatic 静的ファイルを保存するサブフォルダ.
その後、コールする必要がありますurl_for('static', filename='css/styles.css', _external=True) 返り値http://localhost:5000/static/css/styles.css .
静的なファイルをロードしたいとしましょうfavicon.ico HTMLテンプレートで.次のコードブロックをテンプレートに挿入します.
<link rel="icon" href="{{ url_for('static', filename = 'favicon.ico') }}"
 type="image/x-icon">
感謝
記事を読むTemplates and Static files in flask