SQLAlchemy

  1. ベースモデルの作成
    Base = declarative_base()
  2. クラス定義(テーブルをクラスとして生成)
    class User(Base): # type: ignore
    tablename = ‘members’
  3. エンジンを作成
    engine = create_engine(‘sqlite:///sqlalchemy/samurai_blue.sqlite’)
    ※ create_engine()の書き方はデータベースによって異なる
  4. DBと通信するセッションオブジェクトの作成
    Session = sessionmaker(bind=engine)
    session = Session()
データベースコマンド
PostgreSQLengine = create_engine(“postgresql://scott:tiger@localhost/mydatabase”)
MySQLengine = create_engine(“mysql://scott:tiger@localhost/foo”)
SQLiteengine = create_engine(“sqlite:///foo.db”)
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

Base = declarative_base()


class User(Base):    # type: ignore
    __tablename__ = 'members'

    id = Column(Integer, primary_key=True)
    position = Column(String)
    number = Column(String)
    name = Column(String)
    team = Column(String)
    birthday = Column(String)
    physical = Column(String)
    Birthplace = Column(String)


engine = create_engine('sqlite:///sqlalchemy/samurai_blue.sqlite')

Session = sessionmaker(bind=engine)
session = Session()

members = []

for user in session.query(User).all():
    members.append((user.id, user.position, user.name, user.team, user.birthday,
                    user.physical, user.Birthplace))


pprint(members)
$ python samurai_blue.py

[('1', 'GK', '川島 永嗣', 'ストラスブール', '1983/3/20', '185/82', '埼玉'),
 ('2', 'GK', '権田 修一', '清水エスパルス', '1989/3/3', '187/84', '東京'),
 ('3', 'GK', 'シュミット ダニエル', 'シントトロイデン', '1992/2/3', '197/88', 'アメリカ'),
 ('4', 'GK', '谷 晃生', '湘南ベルマーレ', '2000/11/22', '190/87', '大阪'),
 ('5', 'DF', '山根 視来', '川崎フロンターレ', '1993/12/22', '178/72', '神奈川'),
 ('6', 'DF', '谷口 彰悟', '川崎フロンターレ', '1991/7/15', '183/75', '熊本'),
 ('7', 'DF', '瀬古 歩夢', 'グラスホッパー', '2000/6/7', '185/80', '大阪'),
 ('8', 'DF', '長友 佑都', 'FC東京', '1986/9/12', '170/68', '愛媛'),
 ('9', 'DF', '冨安 健洋', 'アーセナル', '1998/11/5', '187/84', '福岡'),
 ('10', 'DF', '酒井 宏樹', '浦和レッズ', '1990/4/12', '185/78', '長野'),

省略