python - SQLAlchemy - select

参考

www.slideshare.net

www.m3tech.blog

qiita.com

Windowsの場合は、pip の前に「py -m 」を付ける! gammasoft.jp

サンプル - session
import sqlalchemy
import sqlalchemy.orm
import sqlalchemy.ext.declarative

Base = sqlalchemy.ext.declarative.declarative_base()


class Person(Base):
    __tablename__ = 'persons'
    id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
    name = sqlalchemy.Column(sqlalchemy.String(45))
    old = sqlalchemy.Column(sqlalchemy.Integer)


def main():
    url = 'mysql://user1:pass@localhost:3306/mytest?charset=utf8'

    engine = sqlalchemy.create_engine(url, echo=True)

    # sessionを作成
    Session = sqlalchemy.orm.sessionmaker(bind=engine)
    session = Session()

    # sessionから取得
    persons = session.query(Person).all()
    for p in persons:
        print('%d, %s %s' % (p.id, p.name, p.old))

if __name__ == '__main__':
    main()
サンプル - sqlを直接書く
import sqlalchemy
import sqlalchemy.orm
import sqlalchemy.ext.declarative

def main():
    url = 'mysql://user1:pass@localhost:3306/mytest?charset=utf8'

    engine = sqlalchemy.create_engine(url, echo=True)

    with engine.connect() as con:
        rows = con.execute("select * from persons where id = %(id)s", id=2)
        for row in rows:
            print(str(row["id"]) + "/" + row["name"] + "/" + str(row["old"]))


if __name__ == '__main__':
    main()