改訂 (2022/08/26)
今現在Flaskは、Pythonで新しくWebアプリを作る際の選択肢として最適とは言えません。APIサーバを作るのであればFastAPI, それ以外であればResponderなどをお勧めします。
はじめに
この記事は
Pythonはさわったことがある・分かるけれど、webアプリの作り方がわからない… や 自信が無くて、どうやって始めればいいかわからない…
といった方向けの入門記事です。
インストール
この記事では、Python3がインストールされていることを前提に進めていきます。おすみでない方は
Python3 install から端末にあったPython3をダウンロード、インストールしてください。
インストールが終わったら、コマンドプロンプト、terminal等で
$pip install flask
と実行してください。必要なライブラリ(第三者が提供する機能群)がインストールされます。
おはよう、世界!
では、一番簡単なwebアプリ "Hello, World!"を画面に表示するサイトを作ってみましょう。
from flask import * # 必要なライブラリのインポート
app = Flask(__name__) # アプリの設定
@app.route("/") # どのページで実行する関数か設定
def main():
return "Hello, World!" # Hello, World! を出力
if __name__ == "__main__": # 実行されたら
app.run(debug=True, host='0.0.0.0', port=8888, threaded=True) # デバッグモード、localhost:8888 のマルチスレッドで実行
これを実行して、http://127.0.0.1:8888/ に接続してみてください。
Hello, World!
と画面に表示されているはずです。
おはよう、ユーザーさん!
今度は、urlの中身を受け取ってそれを出力してみましょう。
mainのあとに
@app.route("/<name>")
def hello_name(name):
return "Hello, {}".format(name)
と付け加えて実行してみてください。
最終的に
from flask import *
app = Flask(__name__)
@app.route("/")
def main():
return "Hello, World!"
@app.route("/<name>")
def hello_name(name):
return "Hello, {}".format(name)
if __name__ == "__main__":
app.run(debug=True, host='0.0.0.0', port=8888, threaded=True)
こうなっていると思います。
試しに http://127.0.0.1:8888/Python に接続するとわかりますが、出力される内容が
Hello, Python
になっていますよね。
<name>
の中にPythonが割り当てられた結果です。このように、urlのデータを読み取って動的にページを作ることもできます。