Python 2.7 将数据插入特定表(sqlalchemy)
使用sqlalchemy将数据插入数据库非常容易Python 2.7 将数据插入特定表(sqlalchemy),python-2.7,sqlalchemy,Python 2.7,Sqlalchemy,使用sqlalchemy将数据插入数据库非常容易 address.name = 'Joe' address.age = 26 session.add(address) 但实际上我有三个表-如何指定要在其中插入数据的表?您可能会想查看 不过,为了让您开始,我怀疑您会希望设置以下内容 from sqlalchemy import Column, Integer, String class Address(Base): __tablename__ = 'addresses' id
address.name = 'Joe'
address.age = 26
session.add(address)
但实际上我有三个表-如何指定要在其中插入数据的表?您可能会想查看 不过,为了让您开始,我怀疑您会希望设置以下内容
from sqlalchemy import Column, Integer, String
class Address(Base):
__tablename__ = 'addresses'
id = Column(Integer, primary_key=True)
name = Column(String)
age = Column(Integer)
def __init__(self, name, age):
self.name = name
self.age = age
现在,由于您似乎已经知道如何获得会话,您可以这样做
address = Address('Joe', 26)
session.add(address)
虽然您可能只是尝试在运行时执行此操作,但这可能不会使您的生活更轻松,因为您仍然需要告诉它哪些对象与整数、字符串等相关,才能映射到数据库表。我通过使用sql表达式语言添加新行来解决此问题:
engine.execute(table_addresses.insert(), name='Joe', age=20)
engine.execute(table_contacts.insert(), email='joe@something.com', cellnumber='267534320')
我通常使用ORM,但在我的情况下更方便。这也是我向数据库添加数据的方式。假设数据库中有多个表,如何指定将数据添加到表“Contacts”而不是“addresses”?如上所述,您可以使用
\uuuu tablename\uuu='addresses'
指定表名addresses
。相反,您是在处理几个名称不同的相同表吗?如果您有不同的表,我可能会建议您使用不同的类映射它们。\uuuu tablename\uuuu
将用于告诉它要匹配的数据库中的实际表。例如,基于您的联系人
示例,您可能会将类
行替换为类联系人(基本):
并将表名
行替换为表名
。您是否正在尝试动态地将它们激发到不同的表中?是的,我想动态地将它们添加到不同的表中。当我尝试添加数据时,我不在映射类中。您是指三个类似的表?如果您使用的是会话,请执行session.execute(table_addresses.insert().values(name='Joe',age=20))
相反。这比使用会话更可取吗?如果表是最近动态创建的,将引擎。执行工作?