Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

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)>