PythonのWebフレームワークであるFlaskと、軽量なデータベースシステムであるSQLiteを組み合わせて、Webアプリケーションを開発する方法について解説します。
FlaskとSQLiteの接続
Flaskはデータベースの機能が備わっていないため、外部モジュールであるSQLiteと連携する方法を用います。
データベースのインストール・設定
まずはSQLiteをインストールします。Macの方はデフォルトでインストールされていますが、Windowsの方は別途インストールが必要です。
SQLAlchemyのインストール
次に、PythonのORM(Object Relational Mapper)であるSQLAlchemyをインストールします。以下のコマンドを実行します。
# mac
$ pip3 install Flask-SQLAlchemy
# windows
$ pip install Flask-SQLAlchemy
初期設定
FlaskとSQLiteを接続するための初期設定を行います。以下のように設定します。
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config["SECRET_KEY"] = b'_5#y2L"F4Q8z\n\xec]dasfe/'
app.config["SQLALCHEMY_DATABASE_URI"] = 'sqlite:///flask_blog.db'
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True
db = SQLAlchemy(app)
import src.views
データベースとの連携
FlaskとSQLiteが接続できたら、次にデータベースとの連携を行います。具体的には、データベースにテーブルを作成し、データの追加や削除などの操作を行います。
モデルの定義
まずは、データベースのテーブルを定義します。以下のようにモデルを定義します。
from src import db
from datetime import datetime
class Entry(db.Model):
__tablename__ = 'entries'
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(50), unique=True)
text = db.Column(db.Text)
create_at = db.Column(db.DateTime)
def __init__(self, title=None, text=None):
self.title = title
self.text = text
self.create_at = datetime.now()
データベースへの反映
最後に、モデルで定義した内容をデータベースに反映させます。以下のスクリプトを実行します。
import sys
sys.dont_write_bytecode = True
from flask_script import Command
from flask_script import Manager
from src import app
from src import db
class InitDB(Command):
def run(self):
db.create_all()
if __name__ == '__main__':
m = Manager(app)
m.add_command('init_db', InitDB())
m.run()
以上で、Python FlaskとSQLiteを用いたWebアプリケーションの開発が可能になります。この知識を活かして、自分だけのWebアプリケーションを開発してみてください。.