今回は、Flaskの必須機能であるExtensionをいくつか紹介します。
これらのエクステンションは便利で簡単に使うことができます。
なぜ Flask の拡張機能が必要なのか?
ご存知の通り、Flask は Werkzueg ベースの WSGI とルーティング、Jinja2 ベースの Template Engine のみをコア機能とする、マイクロウェブフレームワークです。
また、Cookieやセッション、JSONや静的ファイルなどのフロントエンドの機能もサポートしています。
しかし、これだけでは本格的なセキュアWebアプリケーションを構築することはできません。
そこで、Flask Extensions の出番です。
Flask-Extensionsを使うことで、Flaskフレームワークを使ってより多くのタスクを実行することができます。
たくさんのFlask-Extensionsがあります。
ここでは、最もよく使われるFlask-Extensionsをいくつか見ていきます。
この記事もチェック:Flaskでファイルアップロード機能を実装する方法を分かりやすく解説する
いくつかの重要なFlask拡張機能
Flask の拡張機能で最もよく使われるものは以下の通りです。
エクステンション | ユーティリティ |
---|---|
Flask-SQLAlchemy はデータベースのテーブルを簡単に操作するためのモデルタイプのインターフェイスを提供します。 | |
Flask-WTF: Flask Web アプリケーションでフォームをデザインするための代替方法を提供します。WT Formsを使うことで、ユーザから送信されたフォームデータを検証し、安全性を確保することができます。 | |
Flask-Mail: Flask アプリケーションがクライアント/ユーザにメールを送信するための SMTP インターフェイスを提供します。 | |
Flask-Login:FlaskのWebアプリケーションにユーザー認証機能を提供します。 | |
Flask-Debugtoolbar:Flaskアプリケーションのデバッグに使用する強力なデバッグツールバーです。 | |
Flask-Sijax|WebアプリケーションでAJAXを使いやすくするPython/jQueryライブラリであるSijaxのサポートをFlaskアプリケーションに追加するのに役立つ。 |
これらのExtensionはPythonモジュールで、Flaskアプリケーションの機能を拡張するものです。
したがって、Python のライブラリのように pip ユーティリティでインストールすることができます。
Flask-Extension “flask-foo” をインストールするためのシンタックスは以下のようになります。
pip install flask-foo
#pip install flask-Sqlalchemy #pip install flask-wtf #pip install flask-mail #pip install flask-login #pip install flask-debugtoolbar #pip install flask-sijax |
インポートもPythonのライブラリのインポート方法と同じです。
from flask_foo import <Class>, <function>...
|
Flask のバージョンが 0.7 以上の場合は、flask.ext.を使って拡張機能をインポートすることもできます。
構文は以下の通りです。
from flask.ext import foo #sqlalchemy, login .....
|
互換モジュールが有効でない場合、エラーが発生することがあります。
有効にするには、次のコードを使います。
import flaskext_compat
flaskext_compat.activate() from flask.ext import foo
|
有効化すると、今までと同じようにflask.extが使えるようになります。
この記事もチェック:Flaskのライブラリflask-wtfの使い方|簡単にフォームを作成するよ