![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon1.webp)
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon2.webp)
目次
Flaskとは
FlaskはPythonの軽量なWebフレームワークで、シンプルながら強力な機能を持っています。初めてFlaskを使う方のために、基本的なセットアップから簡単なアプリケーションの作成方法までを説明します。
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon1.webp)
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon2.webp)
Flaskのインストール
まずはFlaskをインストールしましょう。Pythonがインストールされていることを確認したら、以下のコマンドを実行します。
pip install Flask
Anacondaで環境を構築する場合
conda create -n web
conda activate web
webという仮想環境を作ってそこにFlaskをインストールします。
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon1.webp)
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon2.webp)
実行環境
今回は次のような環境で実行します。
- Flask 2.2.5
- Windows11
- Python 3.11.7
初めてのFlaskアプリケーション
それでは、簡単なFlaskアプリケーションを作成してみましょう。以下のようなディレクトリ構造を作成します。
tutorial/
├── app.py
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!」と表示されるように設定しています。
アプリケーションの実行
ターミナルで以下のコマンドを実行してアプリケーションを起動します。
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!」と表示されるはずです。
ルーティングの追加
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.」と表示されます。
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon1.webp)
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon2.webp)
テンプレートの使用
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!」と表示されるようになります。
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon1.webp)
![](https://www.math-joy-life.com/wp-content/uploads/2023/12/icon2.webp)
まとめ
Flaskはシンプルで使いやすいフレームワークであり、拡張性も高いので、今後さまざまな機能を追加していくことができます。フォームの処理やデータベースの連携など、さらに進んだ機能に挑戦してみましょう。
Flaskに関連する書籍
動かして学ぶ! Pythonサーバレスアプリ開発入門
Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方
Flask Webアプリ開発実装ハンドブック