SQLAlchemy のさわりだけ
SQLAlchemy?
Python の O/R マッパーです。
スクリプト言語だし、たかが数行試すだけならSQL 文書いても…とは思ったのだけど、せっかくなので
検証は
- python : 3.6.8 (anaconda)
- sqlite3 インストール済み
- SQLAlchemy : 1.3
インストール
$ pip install SQLAlchemy
スキーマ作成
まずはインストールして
# Importing SQLAlchemy from sqlalchemy import create_engine, Column, Integer, String, Float from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy.orm.exc import NoResultFound
どうもテーブルがなければ作るという挙動らしい。
# Create Schema. Base = declarative_base() class ClassRoomInfo(Base): __tablename__ = 'class_room_info' id = Column(Integer, primary_key = True, autoincrement = True) title = Column(String(512)) limit = Column(Integer) joins = Column(Integer) def __repr__(self): return "<ClassRoomInfo(id='%s', title='%s', limit='%s', joins='%s')>" % (self.id, self.title, self.limit, self.joins) Base.metadata.create_all(engine)
セッションを作って操作
コネクションの類は全部セッションがどうにかしてくれるご様子。
# Database session start. Session = sessionmaker(bind=engine) session = Session() # ここに何かやりたいこと # End of session. session.close()
INSERT / SELECT
さすが Python 見たままやなー
# Isertion to database. session.add(ClassRoomInfo(title='ひゃっはー', limit=20, joins=10)) # 中略(500 件くらい挿入) # commit session.commit() # Selection id50 = session.query(ClassRoomInfo).filter_by(id = 50).one() print(f'ID 50 = {id50}')