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つだけです。

  1. リクエスト & レスポンスの ルーティング
  2. HTML テンプレート
  3. セッション管理

データベースへの接続、メール送信、コマンドライン実行、権限管理、HTMLのフォーム処理など、そういったものはありません。そのようなWebアプリケーションを作るためのよくあるツールキットが全部入っているフレームワークのことを「フルスタック」と言います。Flaskのように、必要最低限の機能しか提供していないものを「マイクロ」と言います。

Webアプリケーションを作るには、以下の知識を網羅的に持っている必要があります。全部必要です。最低限知っておかねばならない知識が多岐にわたります。

HTML ブラウザに表示するページを作る
CSSHTMLをデザインする
JavaScriptHTMLに動きをつける
HTTP / DNSWebサーバとの通信規約・ドメイン設定の知識
インフラ構築サーバやミドルウエアなど、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の入門がありますので、まずはそちらをご覧くださいませ!

https://schoo.jp/biz/user/theme/56