目次
Flaskでやりたいことが出てきた時に使うパッケージ
FlaskはDjangoと違い最低限の機能しか入っていないが、実際にそれを行いたくなった時にどのパッケージを入れれば良いのかを調べると、そういえば一覧を見たことが無いなと思ったので作った。
だいたい以下を入れておけばなんとかなるので、あんまり必要な機能というのもない気がする。
やりたいことと、その対応拡張機能
やりたいこと | 拡張機能名 |
---|---|
デバッグ用の便利な機能を追加したい | Flask-DebugToolbar |
ログイン機能を実装したい | Flask-Login |
DBが使いたい | Flask-SQLAlchemy |
i18n(internationalization)対応したい。 l10n(localization)対応したい。 各言語対応したい |
Flask-Babel |
フォームを追加したい | Flask-WTF |
CSRF対応したい | Flask-WTF |
reCAPTCHA対応したい | Flask-WTF |
パスワードを暗号化したい | Flask-Bcrypt |
REST対応したい | Flask-RESTful |
CORSを許可したい | Flask-Cors |
各拡張機能について
拡張機能名 | URL | 備考 |
---|---|---|
Flask-DebugToolbar | https://flask-debugtoolbar.readthedocs.io/en/latest/ | デバッグに役立つ情報を含むオーバーレイを追加。 |
Flask-Login | https://flask-login.readthedocs.io/en/latest/ | ユーザセッション機能を追加。(ログイン、ログアウト、セッションの記憶) |
Flask-SQLAlchemy | https://flask-sqlalchemy.palletsprojects.com/en/2.x/ | ORMラッパー追加。 組み合わせる場合はmysql+pymysqlのように使用。 |
Flask-Babel | https://flask-babel.tkte.ch/ | i18n, l10n対応追加。 |
Flask-WTF | https://flask-wtf.readthedocs.io/en/0.15.x/ | WTForm統合追加。 reCAPCHA対応追加。 CSRF対応追加。 Flask-Babelとの連携追加。 ファイルのアップロード対応を拡張。 |
Flask-Bcrypt | https://flask-bcrypt.readthedocs.io/en/latest/ | 暗号化対応追加。 |
Flask-RESTful | https://flask-restful.readthedocs.io/en/latest/ | RESTful API構築を簡単にするORMライブラリを追加。 |
Flask-Cors | https://flask-cors.readthedocs.io/en/latest/ | CORSを処理するFlask拡張機能を追加。 |
Flask拡張機能一覧
なお、Flaskの拡張機能を全て見たい場合は以下を参照すると良い。
https://pypi.org/search/?c=Framework+%3A%3A+Flask
拡張機能を選ぶ際は以下に気をつけて欲しい。
- ドキュメントがちゃんと整備されているものを選ぶ(ドキュメントが無いものは使い方が分からない。困った時に調べることもできない。)
- バージョンが全然上がっていないものは選ばない(0.0.1とか、1.0.0から始まってるとか。3.0.0なのに実は3回しかバージョンアップしていないとか。)
- 他に似たようなパッケージがある場合は、最もメンテナンスされていて、ドキュメントが豊富なものを選ぶ。(PyPIにあるからといって正しい物とは限らない。ウィルス入っているかも?)
- できるだけメンテナンスされているものを選ぶ(メンテナがいないと、セキュリティ対応とかされなくなるので。)