python3

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

記事内に広告が含まれています。

はるか
Flaskって知ってる?Pythonのフレームワーク。
ふゅか
もちろん!Flaskはシンプルだけど強力なのよ。今回はその基本を見ていきましょう♪

Flaskとは

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

はるか
Flaskは何がいいの?

ふゅか
軽量で使いやすく、シンプルなセットアップで始められるのが魅力よ。

Flaskのインストール

まずはFlaskをインストールしましょう。Pythonがインストールされていることを確認したら、以下のコマンドを実行します。

pip install Flask

Anacondaで環境を構築する場合

conda create -n web
conda activate web

webという仮想環境を作ってそこにFlaskをインストールします。

はるか
Anaconda使うと便利?

ふゅか
うん、仮想環境を作って管理できるから、プロジェクトごとに環境を分けられるのが便利ね!conda create -n webって感じで簡単に作れるよ。

実行環境

今回は次のような環境で実行します。

  • 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.」と表示されます。


はるか
他のページも作れる?

ふゅか
うん、/aboutページを追加するならこんな感じでコードを追加するだけ!簡単にルーティングを追加できるのがFlaskのいいところね。

テンプレートの使用

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!」と表示されるようになります。

はるか
HTMLテンプレート使える?

ふゅか
もちろん!templatesディレクトリを作って、そこにHTMLファイルを置けばOK。FlaskはJinja2というテンプレートエンジンを使ってるの。

まとめ

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

Flaskに関連する書籍

動かして学ぶ! Pythonサーバレスアプリ開発入門
Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方
Flask Webアプリ開発実装ハンドブック

-python3
-,