Flaskは、2010年にリリースされたPython製のマイクロなWebフレームワークです。横文字多くてごめんなさい!ただ、Flaskの立ち位置を知っていただくために特に重要なのが「マイクロ」です。
Micro does not mean that your whole web application has to fit into a single Python file (although it certainly can), nor does it mean that Flask is lacking in functionality. The “micro” in microframework means Flask aims to keep the core simple but extensible.
https://flask.palletsprojects.com/en/2.0.x/foreword/
Flask自体が提供している機能は、この3つだけです。
- リクエスト & レスポンスの ルーティング
- HTML テンプレート
- セッション管理
データベースへの接続、メール送信、コマンドライン実行、権限管理、HTMLのフォーム処理など、そういったものはありません。そのようなWebアプリケーションを作るためのよくあるツールキットが全部入っているフレームワークのことを「フルスタック」と言います。Flaskのように、必要最低限の機能しか提供していないものを「マイクロ」と言います。
Webアプリケーションを作るには、以下の知識を網羅的に持っている必要があります。全部必要です。最低限知っておかねばならない知識が多岐にわたります。
HTML | ブラウザに表示するページを作る |
CSS | HTMLをデザインする |
JavaScript | HTMLに動きをつける |
HTTP / DNS | Webサーバとの通信規約・ドメイン設定の知識 |
インフラ構築 | サーバやミドルウエアなど、Webアプリケーションの公開に必要 |
データベース | データを保存する |
SQL | データベースを操作する言語 |
セキュリティ対策 | 不審者対策 |
そのため、Webアプリケーションの作り方を学ぶには、段階的に機能拡張したほうが頭に入ると想っています。Webアプリの一番の特徴はWebサーバを立てて、リクエストを受けて各々にカスタマイズされたレスポンスを返す部分です。まずそこだけやってみると良いと思います。
Amazonのお買い物かごのように、ページとしては1つだけど、ユーザーによって内容がまちまちのデータを保持している機能があると思います。Google検索もそうですね。私もあなたもGoogle検索を使っているわけですが、検索した言葉は各々違うし、検索結果も違います。
このように機能としては同じだけど、リクエスト単位で独立して別のデータを返すような仕組みが、Webアプリケーションの肝となります。
初めてWebアプリケーションを作るのなら、Flaskのメリットが活きてきます。Flaskはシンプルで、使い始めるときのハードルが低いからです。
FlaskでHelloWorld!
秒で出来ます。
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello_world():
return "<p>Hello, World!</p>"
コードはこれだけです。最低限もいいところですが、Webアプリケーションの機能は満たしています。
この後はユーザーの入力値を受け取る練習と、テンプレートを使ってデザインとデータを分離する練習、ぺーじをまたいでデータを引き継ぐ等の練習が必要になります。
時間があれば続きを書きますが、Schooのユーザーさんであれば、私が講義したFlaskの入門がありますので、まずはそちらをご覧くださいませ!