Flask+jinja2+MySQLでちょっとした画面を作る
お手軽WebフレームワークFlaskでMySQLに登録したデータを表示する画面を作ってみる!
環境構築
MySQLに接続する
ファイル構成 - config.py:DB接続情報を記述 - database.py:セッションを取得 - models/item.py:itemテーブルのモデルクラス データ取得メソッドを記述 - main.py:item.pyのデータ取得メソッドを呼び、HTMLを返す
database.py SQLAlchemyを使ってMySQLの接続セッションを確立
from sqlalchemy import create_engine from sqlalchemy.orm import sessionmaker from config import SystemConfig def create_session(): # create_engine()の引数はconfig.pyに記述したDB接続情報 engine = create_engine(SystemConfig.SQLALCHEMY_DATABASE_URI) session = sessionmaker(bind=engine) return session()
item.py database.pyからセッションを取得し、データを取得
import database as db from sqlalchemy import (Column, Integer, String) from sqlalchemy.ext.declarative import declarative_base base = declarative_base() class Item(base): # テーブル情報 __tablename__ = 'item' no = Column(Integer, primary_key=True, autoincrement=True) title = Column(String(100), nullable=False) content = Column(String(1000), nullable=False) def get_item(self): """ itemテーブルの全データを取得 """ session = db.create_session() item_list = session.query(Item).all() if item_list is None: return [] return item_list
session.query(モデルクラス)
でデータ取得できる!!