はじめに
Pythonは、シンプルかつ柔軟なコードが書けるため、Web開発でも多く使用されています。FlaskはPythonの軽量Webフレームワークで、簡単にWebアプリケーションを作成できるツールとして広く利用されています。本記事では、PythonとFlaskを使ったシンプルなWebアプリケーションの作成手順について解説します。この記事を参考にすれば、Flaskの基礎を学びつつ、基本的なWebアプリケーションの構築が可能になります。
Flaskとは?
Flaskの概要
Flaskは、PythonでWebアプリケーションを構築するための軽量フレームワークです。デフォルトでは最小限の機能しか含まれていないため、シンプルで柔軟な構成が特徴です。必要に応じて拡張機能を追加できるため、小規模なプロジェクトから大規模なWebアプリケーションまで幅広く利用されています。
Flaskのメリット
- シンプルな構造:小さなコード量でWebアプリケーションの開発が可能
- 拡張性が高い:必要に応じて追加ライブラリで機能を増やせる
- 開発がスピーディ:必要最小限の設定で素早くアプリケーションのプロトタイプを作成可能
Flaskのインストール
Flaskを使ってWebアプリケーションを開発するには、まずFlaskライブラリをインストールする必要があります。Pythonのパッケージマネージャであるpip
を使用してインストールできます。
手順
仮想環境の作成
Flask開発を行うディレクトリで、Pythonの仮想環境を作成します。仮想環境を利用することで、開発環境と他のプロジェクト環境を分離できます。
python3 -m venv venv
仮想環境の有効化
仮想環境を有効化し、Flaskがこの環境内にインストールされるようにします。
source venv/bin/activate # MacやLinuxの場合
venv\Scripts\activate # Windowsの場合
Flaskのインストール
仮想環境が有効になった状態で、以下のコマンドを実行し、Flaskをインストールします。bashコードをコピーする
pip install Flask
インストールの確認
Flaskがインストールされたことを確認するには、以下のコマンドでFlaskのバージョンを確認します。bashコードをコピーする
flask --version
シンプルなFlaskアプリケーションの作成
プロジェクト構成
まずは基本的なFlaskアプリケーションのファイル構成を確認しましょう。
bashコードをコピーするflask_app/
├── app.py # メインのアプリケーションファイル
└── templates/
└── index.html # テンプレートファイル
Flaskアプリケーションの作成
メインのアプリケーションファイルの作成
プロジェクトディレクトリ(flask_app
)内にapp.py
というファイルを作成し、以下のコードを追加します。
# app.py
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def home():
return render_template('index.html')
if __name__ == '__main__':
app.run(debug=True)
テンプレートファイルの作成
templates
フォルダを作成し、その中にindex.html
ファイルを追加します。以下はシンプルなHTMLテンプレートです。
<!-- templates/index.html -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Flask App</title>
</head>
<body>
<h1>ようこそ、Flaskアプリケーションへ!</h1>
<p>これはシンプルなWebアプリケーションのサンプルです。</p>
</body>
</html>
アプリケーションの起動
ターミナルで以下のコマンドを実行し、アプリケーションを起動します。
python app.py
ブラウザでhttp://127.0.0.1:5000/
にアクセスすると、作成したHTMLページが表示されます。
Flaskの基本機能
ルーティング
Flaskでは、@app.route()
デコレータを使用してURLパスごとに異なるページを表示することができます。
@app.route('/about')
def about():
return "<h1>このページはAboutページです。</h1>"
/about
にアクセスすると、「このページはAboutページです。」と表示されます。
テンプレートエンジン
FlaskにはJinja2というテンプレートエンジンが組み込まれており、PythonコードをHTMLに埋め込むことができます。
例:変数の表示
# app.py
@app.route('/user/<name>')
def user(name):
return render_template('user.html', name=name)
<!-- templates/user.html -->
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>ユーザーページ</title>
</head>
<body>
<h1>{{ name }}さん、ようこそ!</h1>
</body>
</html>
フォームの実装
Flaskでフォームからデータを受け取ることで、インタラクティブなWebアプリケーションを作成できます。以下では、シンプルなフォームの例を示します。
フォームページの作成
# app.py
from flask import request
@app.route('/form', methods=['GET', 'POST'])
def form():
if request.method == 'POST':
username = request.form['username']
return f'<h1>{username}さん、こんにちは!</h1>'
return '''
<form method="post">
<label>ユーザー名:</label>
<input type="text" name="username">
<input type="submit">
</form>
'''
Flaskアプリケーションのデプロイ
Flaskで開発したアプリケーションを公開するために、デプロイ手順も確認しましょう。
デプロイ方法の例:Heroku
Heroku CLIのインストール
Heroku CLIをインストールし、ログインします。
アプリケーションの準備
Procfile
やrequirements.txt
をプロジェクトディレクトリに追加し、必要なパッケージを指定します。
Herokuへのデプロイ
以下のコマンドでHerokuにアプリケーションをプッシュします。
git init
heroku create
git add .
git commit -m "First commit"
git push heroku master
まとめ
Flaskは、シンプルなWebアプリケーションを素早く構築できるフレームワークです。この記事では、インストールから基本操作、ルーティングやフォームの実装、さらにデプロイ方法についても解説しました。Flaskを使って小規模なプロジェクトに挑戦し、Web開発スキルを高めてみてください。