ラズパイデスクトップでFlask入門(5)Blueprints and Views(1) Create a Blueprint
こんばんは。國松です。
今日、ダウンジャケットを着ていったところ思ったほど寒くなく電車の暖房に少々ぐったりしております。
そんな事はさておきFlask tutorialの続きです。
Blueprints and Views
BlueprintsはFlaskで使われる部品でアプリケーションの機能を分割して実装するためのライブラリです。Blueprintsを使用することでプログラムの保守性を向上させることができます。
実は私もまだBluleprintについてキチンと理解できていないのですがBlueprintについては以下のサイトが参考になります。
いまさらながらFlaskについてまとめる~Blueprint~
Python + Flask + Buluprintで複数のアプリケーションを登録する際にきをつけること
View関数はアプリケーションの要求に応答するために作成します。Flaskはパターンを利用して要求リクエストURLとそれを処理するViewを対応させます。
Create a Blueprint
Blueprintを使うには以下の順に行います。
1.Blueprintを実装する
2.実装したBlueprintをアプリケーションに登録する。
Flaskrには二つのBlueprintsがあります。
1.認証機能用
2.ブログ投稿機能用
Blueprintのコードは別々のモジュールに入ります。まず認証機能用Blueprintを作成していきます。
flaskrディレクトリの中にauth.pyを作成してそこにコードを書いていきます。authはauthentication(認証)の略です。
1 2 3 4 5 6 7 8 9 10 11 | import functools from flask import ( Blueprint, flash, g, redirect, render_template, request, session, url_for ) from werkzeug.security import check_password_hash, generate_password_hash from flaskr.db import get_db #'auth'という名前のBlueprintを作成 bp = Blueprint('auth', __name__, url_prefix='/auth') |
bp = Blueprint(‘auth’, __name__, url_prefix=’/auth’)
アプリケーションオブジェクトと同様にBlueprintはそれが定義されている場所を知る必要があるので2番目の引数として__name__が渡されます。url_prefixはBlueprintに関連付けられているすべてのURLの先頭に追加されます。
作成したBlueprintをアプリケーションに追加するために__init__.pyにコードを追加します。
1 2 3 4 5 6 7 8 | def create_app(): app = ... # existing code omitted from . import auth app.register_blueprint(auth.bp) return app |
app.register_blueprint()を使用してauthBlueprintをインポートして登録します。
authBlueprintには新規ユーザーの登録,ログインおよびログアウトをするためのViewがあります。まず新規ユーザー登録のためのViewを作成していきます。
今回はここまでにしたいと思います。次回は新規ユーザー登録のためのViewの作成から始めたいと思います。