書籍「Laravelの教科書」Laravel13対応サポートガイド公開中 → ダウンロードはこちら

Windows上でFlaskの開発環境を構築する方法・データベース接続まで解説

Python

Windows上でFlaskの開発環境を構築し、さらにデータベースに接続する方法まで解説します。

Flaskを使ってWebアプリを開発してみたいときに、参考にしてください。

Windows上でFlaskの開発環境を構築する方法

まずは環境の構築方法を説明します。なお、下記についてはあらかじめインストールしたという前提でお伝えしていきます。

  • Python 3 (すでにインストールされていることを確認してください)
  • テキストエディター(VSCodeなど)

仮想環境の作成

プロジェクトを作成したい場所に、「test」という名前のフォルダを作ります。この場所で、Windows Power Shellを起動します。

次のコマンドを実行して仮想環境を作成します。

python -m venv venv

仮想環境のアクティベーション

以下のコマンドを使用して、仮想環境をアクティベートします。

.venv\Scripts\activate

ライブラリのインストール

Flask ライブラリを仮想環境にインストールします。ひとつずつライブラリをインストールする場合は、次のコマンドを実行します。

pip install Flask

既にrequirements.txtに必要なライブラリを記載してしている場合は下記のコマンドで、一気にライブラリをインストールできます。

requirements.txt は、Python プロジェクトで使用される外部ライブラリやパッケージの依存関係をリスト化したファイルです。

pip install -r requirements.txt

Flask アプリケーションの作成

app.py という名前の新しいファイルを作成し、次の Python コードを記述します。

【app.py】

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/ にアクセスし、アプリケーションが正しく実行されていることを確認します。

プログラムを停止するには、コマンドライン上でCtrl+Cを実行します。仮想環境を非アクティブにするには、deactivate コマンドを実行します。

おまけ:依存関係の管理

もしrequirements.txtがまだない場合、以下のコマンドを実行すると、インストールされているパッケージのリストを作成できます。

pip freeze > requirements.txt

Windows上でFlaskのWebアプリ用のデータベースを作る方法

次にデータベース接続について説明します。

今回はXamppを使い、XamppにインストールされているphpMyAdminをデータベースとして接続する方法を解説します。

Xamppのインストール方法は、下記をご覧ください。

XamppのApacheとMySQLを起動

Xamppのコントロールパネスを開き、Apache と MySQL を起動します。

ブラウザで http://localhost/phpmyadmin/ にアクセスして、phpMyAdmin を開きます。

データベースとテーブルの作成

phpMyAdmin のダッシュボードで「新規」をクリックし、「testuser」という名前のデータベースを作成します。

「testuser」データベースを選択し、「テーブルを作成する」に名前として「user」を入力し、必要な列数(3)を選択します。

ユーザーテーブルを作成するための列(id, name, created_at)を下記のように定義します。idはAIにチェックをいれます。created_atは、デフォルト値を指定しておきます。これにより、作成日時が自動で入るようになります。

.envの設定

先ほど作成したFlaskアプリの中に、.env ファイルを作成します。以下の内容でデータベース接続情報を設定します。

DATABASE_TYPE=mysql
DBAPI=pymysql
DB_USER='root' 
DB_PASSWORD='' 
DB_HOST='localhost' 
DB_PORT=3306
DB_NAME='testuser'

ライブラリのインストール

requirements.txtファイルを作成し、下記のように記入します。

Flask
Flask-SQLAlchemy
pymysql
python-dotenv

下記コマンドで、ライブラリをインストールします。

pip install -r requirements.txt

データベース接続情報を追加

Flask アプリケーション (app.py) にデータベース接続を追加します。

from flask import Flask, render_template, request, redirect, url_for
from flask_sqlalchemy import SQLAlchemy
from dotenv import load_dotenv
import os

load_dotenv()
app = Flask(__name__)

# 環境変数からデータベース設定を取得し、接続文字列を構築
database_type = os.getenv('DATABASE_TYPE')
dbapi = os.getenv('DBAPI')
user = os.getenv('DB_USER')
password = os.getenv('DB_PASSWORD')
host = os.getenv('DB_HOST')
port = os.getenv('DB_PORT')
database = os.getenv('DB_NAME')
app.config['SQLALCHEMY_DATABASE_URI'] = f"{database_type}+{dbapi}://{user}:{password}@{host}:{port}/{database}"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

# モデル定義
class User(db.Model):
    __tablename__ = 'users'
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(20))

# 最初の画面(ボタン表示)
@app.route('/')
def index():
    return render_template('index.html')

# データベースに保存
@app.route('/add_user', methods=['POST'])
def add_user():
    new_user = User(name='Dummy User')
    db.session.add(new_user)
    db.session.commit()
    return redirect(url_for('index'))

if __name__ == "__main__":
    app.run(debug=True)

表示部分を作成

プロジェクトの中にtemplates/index.htmlを作り、次のようにボタンを作成しておきます。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Add User</title>
</head>
<body>
    <form action="/add_user" method="post">
        <button type="submit">ユーザー追加</button>
    </form>
</body>
</html>

プロジェクト全体のファイル構造は下記のようになります。

アプリケーションの実行

以下のようにファイル名を指定してコマンドを実行します。

python app.py

ブラウザで http://127.0.0.1:5000/ にアクセスします。ボタンをクリックします。

データベースにユーザーが保存されていることを確認してください。

うまくいかない場合

ブラウザ上や、コマンドライン上のエラーメッセージを確認してください。たとえば画面に

sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (1049, “Unknown database ‘testuserr'”)

と出た場合は、.envのデータベースが間違えています。修正後、一度 Ctrl+Cボタンでプログラムを停止したのち、再度 python app.py コマンドでプログラムを実行してください。

さいごに

以上、Windows上でFlaskの開発環境を構築し、さらにデータベースに接続する方法を解説しました。

本番上のデプロイ方法はいくつかありますが、わたしは、エックスサーバーとStreamlitを試しました。

エックスサーバーへのデプロイは別記事にまとめています。ご興味あれば、併せてご覧ください。

Python

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる
 

生成AIを「安全に」使うための研修・セミナー

お問い合わせ

生成AIの業務活用で気になるのは、効率だけでなくセキュリティです。 実践的な活用に加え、セキュリティ対策もお伝えします。

詳細を見てみる

【Laravelの教科書・プレゼント】

Junko
Laravelの使い方を覚えたい!と思ったら、ぜひ、役立ててほしいです。 基礎編は無料でプレゼント中です♪
ひつじプログラマ
会員制サイトをいちから作っていくよ。ボタンをクリックして詳細を見てね。
Laravelの教科書の詳細を見る

最新版Laravel13への対応に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

【無料プレゼント】

「LaravelでWebアプリをいちから作れるようになりたい!」

そんなLaravel初心者のあなたへ【Laravelの教科書】基礎編プレゼント中! 会員制フォーラムサイトを学習しながら作れます。

詳細はこちらをクリック

最新のLaravel13に対応。Laravel8からの各バージョンのテキストもご覧になれます♪

Laravelの本を書きました。


ひつじが目印♪

Laravelの使い方を分かりやすく解説した本を書きました。 書店やAmazon等のオンラインショップにて販売中
最新版Laravel13対応用サポートガイド(PDF)あり

書籍の詳細を見てみる

Laravelの本書きました。


ひつじが目印♪
クリックするとamazonページへ。
最新版Laravel13対応用
サポートガイド(PDF)あり

書籍の詳細を見てみる
シェアする
Twitter始めました。

コメント

タイトルとURLをコピーしました