読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

PythonのORマッパーSQLAlchemyを使ってみる

実際のところ

$ pip install sqlalchemy
import sqlalchemy
sqlalchemy.__version__
#>> '1.0.15'

SQLiteのオンメモリDBをつかって、簡単な読み書きをするには以下のようにします。

from sqlalchemy import create_engine, Table, Column, Integer, String, MetaData
from sqlalchemy.orm import mapper, sessionmaker

engine = create_engine("sqlite:///:memory:")

metadata = MetaData()

user_table = Table("users", metadata,
  Column("id",Integer, primary_key=True),
  Column("name", String),
  Column("spec", String)
)  

metadata.create_all(engine) 

class User:
  def __init__(self, name, spec):
    self.name = name
    self.spec = spec

  def __repr__(self):
    return '<User({:s},{:s})>'.format(*[self.name, self.spec])


mapper(User, user_table)

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


obj = User("name1","spec1")
session.add(obj)
session.commit()

for row in session.query(User).all():
  print(row)

実行するとこんな感じになります

$ python test_sqlalc.py 
<User(name1,spec1)>