MyTetra Share
Делитесь знаниями!
Reverse engeneering / получение метаданных из БД по таблицам / autoload
Время создания: 11.10.2017 19:21
Текстовые метки: mine
Раздел: SQLAlchemy - Queries
Запись: xintrea/mytetra_db_mcold/master/base/15077388681f2d75lc4n/text.html на raw.githubusercontent.com

1. создаем декларативные классы

2. создаем объект metadata

3. считываем из metadata данные по объявленным классам


# -*- coding: UTF-8 -*-

from sqlalchemy import create_engine, MetaData, Table

from sqlalchemy.orm import sessionmaker

from sqlalchemy.ext.declarative import declarative_base



engine = create_engine('sqlite:///test.db', echo=True)

Base = declarative_base(engine)



class User(Base):

__tablename__ = 'users'

__table_args__ = {'autoload':True}


class Address(Base):

__tablename__ = 'addresses'

__table_args__ = {'autoload':True}


def loadSession():

MetaData = Base.metadata

Session = sessionmaker(bind=engine)

s = Session()

return s, MetaData



if __name__ == "__main__":

s, m = loadSession()

res = s.query(User).all()

for i in range(len(res)):

print(res[i].fullname)

# print(res[1].name)

for t in m.sorted_tables:

print(t.name)


Так же в этом разделе:
 
MyTetra Share v.0.58
Яндекс индекс цитирования