Flask2.0へのメジャーアップデート!Flask2.0の新機能とは
こんにちは!PA Labメディアです。
日本語のドキュメントはまだほとんど出ていないようですが、本日はFlask2.0で導入された新機能に関してご紹介をしていこうと思います。
目次
Flaskとは
FlaskはPythonのWebフレームワークの一つで、最も使われているWeb開発のフレームワークです。(※JetBrain社のPython開発者向け調査結果より) 人気のDjangoを抑えて1位となっているようですね。非常に簡単でシンプルなフレームワークとなっているので、簡単なプロトタイプ開発から大規模開発まで柔軟に行う事が出来るのが大きな特徴と言えます。
かなりいくつか大きく更新内容があるのですが、簡単に今回のFlask2.0のアップデートの大きな内容をまとめると、
- タイプヒントの追加
- Python2、Python3.5のサポート終了
- HTTPメソッド向けのデコレーターの充実化
Flask2.0へのアップデート方法
Flask2.0へのアップデート方法ですが、pipを使ったアップデートの場合以下のようになります。
pip install -U Flask==2.0.0
-U
をオプションでつける事で、2.0.0のバージョンを指定してライブラリのアップデートを行います。
Flask2.0のアップデート内容 (1) タイプヒントの追加
今回のアップデートでFlaskにタイプヒントが追加されました。
Pythonはオブジェクト志向プログラミング言語の一つですが、Pythonならではの考え方があります。有名なものとして、The Zen of PythonというPythonプログラマとしての心構えをまとめたものがあります。
その中の一つにExplicit is better than implicit.という文があります。和訳すると「暗黙的に記述するよりは明示的に書きましょう」という事ですが、タイプヒントというのは誰が見てもパラメータの方が指定されていて、Flask2.0ではこのタイプヒントをサポートしています。
Pythonは動的型付き言語と呼ばれていて、自動的にstring型やint型というのが決めるようになっているのですが、タイプヒントは明示的に型を宣言する機能です。型を明示的にする事でバグを発生させにくいコーディングや、誰が見てもわかりやすい可読性向上につなげる事ができます。
実際に以下のコードでFlask2.0のhelp関数を読んでみると分かりやすいですね。
from flask import Flask
help(Flask)
Flask1.1.4のバージョンでのhelp関数
Flask2.0.0のバージョンでのhelp関数
タイプヒントがFlaskの全てに使用されていて、型が明示的で非常に分かりやすいですね。
例えばよくある間違いがパスの名前なのか、ファイルそのものなのか、分かりづらい時がありますが、タイプヒントを使用することでそのようなミスも少なくなります。
Flask2.0のアップデート内容 (2) Python2、Python3.5のサポート終了
Python2系はすでに終了しており、Python3.5以前もだいぶ前のバージョンになるため、完全にサポートを打ち切るようにしました。サポートを打ち切ることにより、Flask2.0では強制的にPython3.6以降のバージョンが必須となります。
これによりユーザーとしてはFlask2.0で記述したコードは他の環境でも動作がしやすい、といったメリットがあります。特にFlaskは2010年からあるため、Python2系のサンプルがよく見られていましたが、逆に昔のFlaskのコードはそのまま動作しないようになります。
Flask2.0のアップデート内容 (3) HTTPメソッド向けのデコレーターの充実化
今回のアップデートでHTTPメソッド向けのデコレータが充実化しました。すごくシンプルなアップデートですが、かなり分かりやすくなったと思います。例えば、分かりやすい変化としては、@app.route
の代わりに@app.get
や`@app.post`などのメソッドが使用することが出来るようになった事です。
実際にFlask1.1.4とFlask2.0で違いを見てみましょう。
Flask1.1.4
from flask import Flask
app = Flask('__name__')
@app.route('/first', methods=['GET'])
def get_endpoint():
return 'Getリクエスト'
Flask2.0
from flask import Flask
app = Flask('__name__')
@app.get('/first')
def get_endpoint():
return 'Getリクエスト'
まとめ
今回のアップデートではPythonのWeb開発フレームワークで最も使われているFlaskのメジャーアップデート、Flask2.0.0に関して紹介をしていきました。今回のメジャーアップデートではタイプヒントやデコレータの新機能が追加されたことで更に書きやすく分かりやすくなったと思います。未来の自分や他人が理解できるようなコードを記述することは非常に大切ですので、今からFlaskを始める方や新規プロジェクトの際にはタイプヒントを導入してFlask2.0を使用してコーディングをしていく事がおすすめです。
PA Labでは「AIを用いた自動化×サービス開発」の専門家として活動をしています。高度なデータ分析からシステム開発まで一貫したサービス提供を行っており、特に機械学習やディープラーニングを中心としたビジネス促進を得意としております。
無料で分析設計/データ活用に関するご相談も実施中なので、ご相談があればお問い合わせまで。
この記事へのコメントはありません。