如何使用Sqlalchemy访问预先存在的表

时间:2016-09-16 19:04:09

标签: python sqlalchemy

我正在使用scrapy。我希望能够访问一个sqlalchemy会话,其中包含一个名为' contacts'根据文档(http://docs.sqlalchemy.org/en/latest/orm/session_basics.html#getting-a-session),我创建了以下内容:

engine = create_engine('sqlite:///data.db')
# create a configured "Session" class
Session = sessionmaker(bind=engine)

# create a Session
session = Session()

class ContactSpider(Spider):
.......

    def parse(self, response):

        print('hello')
        session.query(contacts).filter_by(name='ed').all()     

但是我没有看到连接到预先存在的表的方法。这是怎么做到的?

1 个答案:

答案 0 :(得分:1)

您可以通过反射连接到预先存在的表。不幸的是,您的问题缺少一些代码设置,因此下面是一般的伪代码示例(假设您的表名为contacts

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()
# Look up the existing tables from database
Base.metadata.reflect(engine)

# Create class that maps via ORM to the database table
Contact = type('Contact', (Base,), {'__tablename__': 'contacts'})