Flaskには標準でJinja2というテンプレートエンジンが付いています。
templatesというフォルダを作り、そこに、htmlを置きます。
フォルダ構成は以下のようになります。
flask/run.py
/templates/layout.html
/hello.html
<!doctype html>
<html>
<head>
<title>{{ title }}</title>
</head>
<body>
{% block content %}
<!-- ここにメインコンテンツを書く -->
{% endblock %}
</body>
</html>
{% extends "layout.html" %}
{% block content %}
<h3>Hello</h3>
こんにちは。{{ name }}さん。
{% endblock %}
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello():
name = "Hoge"
return render_template('hello.html', title='flask test', name=name)
if __name__ == "__main__":
app.run(debug=True)
共通テンプレートです。
フッターとかヘッダーとかをここに定義するといいと思います。
{% block content %}
<!-- ここにメインコンテンツを書く -->
{% endblock %}
通常のHTMLと異なる部分は上記部分のみです。
{% block content %}
と{% endblock %}
部分にコンテンツをインポートします。
コンテンツ部分です。
今回はこんにちは。{{ name }}
さん。と表示させます。
{% extends "layout.html" %}
{% block content %}
<h3>Hello</h3>
こんにちは。{{ name }}さん。
{% endblock %}
{% extends "layout.html" %}
でlayout.htmlを継承しています。
def hello():
name = "Hoge"
return render_template('hello.html', title='flask test', name=name)
return render_template('hello.html', title='flask test', name=name)
この部分でhello.htmlを呼び出しタイトルとnameの変数を渡しています。
他の部分の説明はFlaskでhello world
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント