はじめに
flask_sqlalchemyを使ってsqliteデータベースを作成する方法をまとめる
階層構造
MODELS2 └─model.py
流れ
- SQLAlchemyの設定
- Flaskオブジェクトの定義
- データベースの名称、場所の指定
- その他SQLAlchemyの設定
- SQLAlchemyオブジェクトを作成
- モデルクラスを作成
- テーブル名の定義
- カラムの定義
- テーブルの作成
- create_all()関数でデータベースに新しいテーブルを作成する
コード
import os from flask import Flask from flask_sqlalchemy import SQLAlchemy # SQLAlchemyの設定 base_dir = os.path.dirname(__file__) app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(base_dir, 'DataBase1.sqlite') # SQLAlchemyオブジェクトを作成 db = SQLAlchemy(app) # モデルクラスを作成 class Person(db.Model): __tablename__ = 'persons' id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(20)) phone_number = db.Column(db.String(13)) age = db.Column(db.Integer) create_at = db.Column(db.DateTime) update_at = db.Column(db.DateTime) def __init__(self, name, phone_number, age, create_at, update_at): self.name = name self.phone_number = phone_number self.age = age self.create_at = create_at self.update_at = update_at # テーブルの作成 db.create_all()
実行結果
実行するとmodel.pyと同じ階層に「DataBase1.sqlite」が作成される。
test ├─model.py └─Database1.sqlite
既に同名のテーブルがある場合、db.create_all()しても新しくテーブルは作成されない。