BETA

Python DBデータを取得する

投稿日:2020-04-25
最終更新:2020-04-25

Flask+jinja2+MySQLでちょっとした画面を作る

お手軽WebフレームワークFlaskでMySQLに登録したデータを表示する画面を作ってみる!

環境構築

  1. MySQLをインストール
    • brew install mysql
    • brew services start mysql
    • mysql -uroot
    • クライアントツールはMySQL Workbenchを利用
    • クライアントツールからスキーマ、テーブル、データを作成
  2. Pythonライブラリをインストール ※PyPI最新版を利用
    • Flask
    • jinja2
    • pymysql データ取得だけでは使わなかった
    • sqlalchemy

MySQLに接続する

ソースコードはGitHub

ファイル構成

  • 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(モデルクラス)でデータ取得できる!!

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

だいたい急に挑戦してゴールにたどり着かずに飽きる日々です

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう