Flaskを使ったウェブアプリケーション開発の始め方:最初の一歩を踏み出そう



1. Flaskとは
FlaskはPythonの軽量なWebフレームワークで、シンプルながら強力な機能を持っています。初めてFlaskを使う方のために、基本的なセットアップから簡単なアプリケーションの作成方法までを説明します。


2. Flaskのインストール
まずはFlaskをインストールしましょう。Pythonがインストールされていることを確認したら、以下のコマンドを実行します。
pip install Flask
2.1. Anacondaで環境を構築する場合
conda create -n web
conda activate web
webという仮想環境を作ってそこにFlaskをインストールします。


2.2. 実行環境
今回は次のような環境で実行します。
- Flask 2.2.5
- Windows11
- Python 3.11.7
3. 初めてのFlaskアプリケーション
それでは、簡単なFlaskアプリケーションを作成してみましょう。以下のようなディレクトリ構造を作成します。
tutorial/
├── app.py
3.1. app.pyの作成
app.py
ファイルを作成し、以下のコードを追加します。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
このコードは非常にシンプルなFlaskアプリケーションです。Flask
クラスのインスタンスを作成し、ルートURL (/
) にアクセスしたときに「Hello, World!」と表示されるように設定しています。
3.2. アプリケーションの実行
ターミナルで以下のコマンドを実行してアプリケーションを起動します。
python app.py
すると、以下のようなメッセージが表示されます。
(web) D:\web-flask\tutorial>python app.py
* Serving Flask app 'app'
* Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
* Running on http://127.0.0.1:5000
Press CTRL+C to quit
* Restarting with watchdog (windowsapi)
* Debugger is active!
* Debugger PIN: 691-256-788
ブラウザで http://127.0.0.1:5000/
にアクセスすると、「Hello, World!」と表示されるはずです。
4. ルーティングの追加
Flaskでは、さまざまなURLに対して異なる関数を実行するルーティングが簡単に追加できます。app.py
に以下のコードを追加してみましょう。
@app.route('/about')
def about():
return 'This is the about page.'
これで、http://127.0.0.1:5000/about
にアクセスすると「This is the about page.」と表示されます。


5. テンプレートの使用
FlaskはJinja2テンプレートエンジンを使用してHTMLを生成します。templates
ディレクトリを作成し、その中にHTMLファイルを配置します。
tutorial/
├── app.py
└── templates/
└── index.html
index.html
ファイルを以下のように作成します。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Hello</title>
</head>
<body>
<h1>{{ message }}</h1>
</body>
</html>
app.py
を次のように修正します。
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
return render_template('index.html', message='Hello, Flask!')
@app.route('/about')
def about():
return 'This is the about page.'
if __name__ == '__main__':
app.run(debug=True)
これで、http://127.0.0.1:5000/
にアクセスすると、「Hello, Flask!」と表示されるようになります。


6. まとめ
Flaskはシンプルで使いやすいフレームワークであり、拡張性も高いので、今後さまざまな機能を追加していくことができます。フォームの処理やデータベースの連携など、さらに進んだ機能に挑戦してみましょう。