Die Version, die ich ausprobiert habe.
In [1]: import sqlalchemy
In [2]: sqlalchemy.__version__
Out[2]: '1.0.5'
Wenn Sie Metadaten oder Engine an "sqlalchemy.Table ()" übergeben, erhalten Sie das "Table" -Objekt, das unverändert an die Sitzung übergeben werden kann.
Machen Sie ein Diktat von "{
dbs.py
# -*- coding: utf-8 -*-
import sqlalchemy
import sqlalchemy.ext.declarative
Base = sqlalchemy.ext.declarative.declarative_base()
url = 'mysql://[email protected]/employees?charset=utf8'
engine = sqlalchemy.create_engine(url, echo=False)
tables = { name: sqlalchemy.Table(name, Base.metadata, autoload=True, autoload_with=engine)
for name in engine.table_names()
}
globals().update(tables)
Session = sqlalchemy.orm.sessionmaker(bind=engine)
session = Session()
Holen Sie sich alle Datensätze aus der Tabelle "Mitarbeiter". (Mein MySQL-Beispiel)
select.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import dbs
for x in dbs.session.query(dbs.employees):
print x
TODO: Möglicherweise möchten Sie es in Form einer statischen Klasse exportieren.
Sie können den Tisch dynamisch lecken und so ausspucken.
Eine solche Form
class Student(Base):
__tablename__ = 'students'
id = sqlalchemy.Column(sqlalchemy.Integer, primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String(255))
kana = sqlalchemy.Column(sqlalchemy.String(255))
def __repr__(self):
return '<name=%s, kana=%s>' % (self.name, self.kana)
Recommended Posts