1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Python & Flask 入門チュートリアル①

Last updated at Posted at 2025-06-24

🐍 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設計
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?