🐍 Python & Flask 入門チュートリアル
このチュートリアルでは、Pythonの基本文法とFlaskという軽量Webフレームワークを使って、簡単なWebアプリケーションを構築するプロセスを体系的に解説します。開発環境構築から動的Webページの作成までをカバーします。
✅ 事前に必要な環境
- Python 3.10 以上がインストールされていること
- ターミナル(Mac/Linux)または PowerShell / コマンドプロンプト(Windows)が使えること
① Pythonの仮想環境を構築する
● 仮想環境とは?
Pythonでは、プロジェクトごとに依存ライブラリのバージョンを切り分けて管理するために「仮想環境(venv)」を使います。これにより他プロジェクトへの影響を防ぎます。
● -m
の意味
python -m venv .venv
の -m
は「モジュールとして実行する」という意味です。ここでは venv
モジュールを使って .venv
というフォルダに仮想環境を構築します。
● 仮想環境の作成・有効化
mkdir flask-tutorial
cd flask-tutorial
python -m venv .venv
● ターミナルで仮想環境を有効化
- Windows(コマンドプロンプト):
.venv\Scripts\activate
- Windows(PowerShell / VSCodeのターミナル):
.venv\Scripts\Activate.ps1
※ 実行制限のエラーが出たら:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- macOS / Linux:
source .venv/bin/activate
● Pythonの場所を確認
- Windows:
where python
- macOS / Linux:
which python
● Flaskのインストール
pip install flask
② Pythonの基本文法(復習)
● 変数とデータ型
name = "Taro"
age = 25
is_student = True
● 関数定義
def say_hello(name):
print(f"Hello, {name}!")
say_hello("Taro")
● 条件分岐とループ
if age > 18:
print("Adult")
else:
print("Child")
for i in range(3):
print(i)
③ Flask アプリの最小構成と実行
● 最小のFlaskアプリ
from flask import Flask
app = Flask(__name__)
@app.route('/')
def home():
return "Hello, Flask!"
if __name__ == '__main__':
app.run(debug=True)
● 実行方法
python app.py
ブラウザで http://127.0.0.1:5000 を開くと表示されます。
● ルーティングとは?
@app.route('/')
は URL のパスと関数を対応付けます。ここでは /
(トップページ)にアクセスしたときに関数 home()
を実行します。
● __name__ == '__main__'
とは?
この構文は「このファイルが直接実行されたときのみ以下のコードを実行する」ためのPythonの基本的な書き方です。
④ HTMLテンプレートを使って出力する
● HTMLファイルの作成(templates/index.html)
<!DOCTYPE html>
<html>
<head><title>Hello</title></head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
● Pythonコードでテンプレートをレンダリング
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template("index.html", name="Taro")
-
render_template
はテンプレートフォルダ内のHTMLを動的に表示する関数です。 -
{{ name }}
のような構文は Jinja2 というテンプレートエンジンの記法です。
⑤ フォームからデータを受け取る
● フォームHTML(templates/form.html)
<form method="POST">
<input name="username">
<input type="submit">
</form>
● PythonでPOSTデータを処理
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def form():
if request.method == 'POST':
name = request.form['username']
return f"Hello, {name}!"
return render_template('form.html')
-
request.form['username']
でフォームから送られたデータを取得します。
⑥ JSON形式でデータを返すAPIを作る
● APIエンドポイントの作成
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/api/user')
def api_user():
return jsonify({"name": "Taro", "age": 25})
-
jsonify
を使うことで、Pythonの辞書を自動的にJSON形式に変換してレスポンスとして返します。 - このAPIにアクセスすると、
{"name": "Taro", "age": 25}
がJSONとして表示されます。
✅ まとめ
習得内容 | 説明 |
---|---|
Python構文 | 変数、関数、条件分岐、ループ |
Flask基本 | ルーティング、テンプレート、フォーム処理、API設計 |