使用SQLAlchemy映射对象时,有没有办法只将类的某些元素映射到数据库,还是必须是1:1映射?
示例:
class User(object):
def __init__(self, name, username, password, year_of_birth):
self.name = name
self.username = username
self.password = password
self.year_of_birth = year_of_birth
说出来,无论出于何种原因,我只希望将name
,username
和password
映射到数据库,而忽略year_of_birth
。这可能会产生问题吗?
Edit - 25/03/2010
此外,我想将username
和year_of_birth
映射到单独的数据库。此数据库和上面的数据库是否仍然连接(通过username
)?
答案 0 :(得分:2)
您的映射器可以指定要映射的列,甚至可以将单个表映射到多个对象,将多个表映射到单个对象。
以下是多次映射单个对象的文档:http://www.sqlalchemy.org/docs/05/mappers.html#multiple-mappers-for-one-class
您想要的是配置要映射/不映射的列。这可以通过自定义列属性来完成。文档:http://www.sqlalchemy.org/docs/05/mappers.html#customizing-column-properties
示例:
mapper(User, users_table, include_properties=['user_id', 'user_name'])
mapper(Address, addresses_table, exclude_properties=['street', 'city', 'state', 'zip'])