【python – 如何动态更改SQLAlchemy声明模型上的列类型?】教程文章相关的互联网学习教程文章

python – 具有多个对象层次结构的SQLalchemy【代码】

我正在尝试使用Pyramid框架中的SQLAlchemy构建对象层次结构.我有一个工作层次结构 – 当前一个C对象有B作为其父对象,其中A为其父对象. 但我需要更改它,以便模型B可以有A,B或C作为它的父级等.我尝试使用Association table,但其中使用的外键也只链接到一种类型的对象.我还想保留当前的Children和Parent关系属性. 这是我当前的models.py文件:DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension())) Base =...

python – 通过sqlalchemy执行时启用执行多个语句【代码】

我有一个包含create function语句的DDL对象(create_function_foo).在它的第一行,我把DROP FUNCTION IF EXISTS foo;但engine.execute(create_function_foo)返回:sqlalchemy.exc.InterfaceError: (InterfaceError) Use multi=True when executing multiple statements我把multi = True作为create_engine,engine.execute_options和engine.execute的参数,但它不起作用. 注意:如果我的create_engine实例引擎 注意:我使用的是python 3...

python – 从sqlAlchemy表模型中获取表列【代码】

我有一个表格,我想要获取所有列名称但是在浏览网站后我找不到可行的方法.这就是我的表格:class myTable(Base):__tablename__ = 'myTable'col1 = Column(Integer, primary_key=True)col2 = Column(Unicode(10))col3 = Column(Integer)col4 = Column(Numeric(10, 6))col5 = Column(Numeric(6,3))col6 = Column(Numeric(6,3))child = relationship('tChild',backref=backref('children'))我希望能够从for循环中打印所有列名.例如:"c...

python – SQLAlchemy – 使用DateTime列查询按月/日/年进行筛选【代码】

我正在建立一个Flask网站,其中涉及跟踪付款,我遇到了一个问题,我似乎无法按日期过滤我的一个数据库模型. 例如,如果这是我的表的样子:payment_to, amount, due_date (a DateTime object)company A, 3000, 7-20-2018 comapny B, 3000, 7-21-2018 company C, 3000, 8-20-2018我想过滤它,以便我获得7月20日之后的所有行,或者8月份的所有行等. 我可以想到一种原始的,强力的方式来过滤所有付款,然后迭代遍历列表按月/年过滤,但我宁愿远离...

python – SQLAlchemy:阻止自动关闭【代码】

我需要通过SQLAlchemy插入/更新批量行.并获取插入的行. 我试着用session.execute来做:>>> posts = db.session.execute(Post.__table__.insert(), [{'title': 'dfghdfg', 'content': 'sdfgsdf', 'topic': topic}]*2)>>> posts.fetchall()ResourceClosedError Traceback (most recent call last)并与引擎:In [17]: conn = db.engine.connect() In [18]: result = conn.execute(Post.__table__.insert(), [{...

python – 单表继承上的SQLAlchemy一对多关系 – 声明式【代码】

基本上,我有这个模型,我在一个表中映射了一个“BaseNode”类和两个子类.关键是我需要其中一个子类,与另一个子类具有一对多的关系.所以在排序中,它是与另一行不同类(子类)的关系,但在同一个表中.你怎么认为我可以使用声明性语法来编写它? 注意:由于我的模型中的其他关系,如果可能,我真的需要坚持单表继承.class BaseNode(DBBase):__tablename__ = 'base_node'id = Column(Integer, primary_key=True)discriminator = Column('type...

python – SQLAlchemy:具有复合主键的关系表【代码】

我有一组看起来像这样的表:workflows = Table('workflows', Base.metadata,Column('id', Integer, primary_key=True),)actions = Table('actions', Base.metadata,Column('name', String, primary_key=True),Column('workflow_id', Integer, ForeignKey(workflows.c.id), primary_key=True),)action_dependencies = Table('action_dependencies', Base.metadata,Column('workflow_id', Integer, ForeignKey(workflows.c.id), prim...

如何远程使用Python SQLAlchemy连接MySQL数据库?【代码】

我无法远程访问MySQL.我使用SSH隧道,并希望使用Python SQLALchemy连接数据库MySQL. 当我在我的控制台中使用MySQL-client并指定“ptotocol = TCP”时,一切都很好!我用命令:mysql -h localhost —protocol=TCP -u USER -p我通过SSH隧道访问远程数据库. 但是,当我想使用Python SQLAchemy连接到数据库时,我找不到像-protocol = TCP这样的选项否则,我只连接到本地MySQL数据库.请告诉我,有没有办法使用SQLAlchemy来做到这一点.解决方法...

python – SQLAlchemy在相关子更改时更新父级【代码】

我正在尝试将一个实体建模为一个或多个一对多关系,以便更新它的last_modified属性, >添加或删除子项>孩子被修改了>实体本身被修改 我把以下最小的例子放在一起:class Config(Base):__tablename__ = 'config'ID = Column('ID', Integer, primary_key=True)name = Column('name', String)last_modified = Column('last_modified', DateTime, default=now, onupdate=now)params = relationship('ConfigParam', backref='config')clas...

python – 在sqlalchemy函数中避免样板会话处理代码【代码】

我有一个python应用程序,它有很多小的数据库访问功能,使用sqlalchemy.我试图避免在这些函数周围有很多样板会话处理代码. 我有很多功能,看起来像这样:def get_ticket_history(Session, ticket_id):s = Session()try:rows = s.query(TicketHistory) .filter(TicketHistory.ticket_fk==ticket_id) .order_by(TicketHistory.id.desc()).all()s.commit()return rowsexcept:s.rollback()raisefinally:s.c...

python – sqlalchemy – 使用2个条件连接子表【代码】

如何在连接2个表时向ON子句添加2个条件.我有3个三层表,每个表都有删除标志.我必须在单个查询中加入所有这些表,并根据已删除的标志进行过滤.目前,条件被添加到查询的where子句中,该子句不会过滤已删除的记录.它需要添加到ON子句中.请建议. 我目前的查询如下:result = session.query(Host).filter(and_(Host.id.in_(ids), Host.deleted == False)). join(Switch).filter(Switch.deleted == False). join(Port).filter(Port.de...

python – sqlalchemy ORM:如何声明包含多列主键的表类?【代码】

主键的列必须按特定顺序排列. 我从文档中看到一些代码:class User(Base):__tablename__ = 'users'id = Column(Integer)__mapper_args__ = {'primary_key':[id]}但它只是不起作用(我使用的是mysql,并且不会生成id主键).任何可能的解决方解决方法:如果列的声明顺序与它们在主键中的顺序相同:class User(Base):field1 = Column(Integer, primary_key=True)field2 = Column(Integer, primary_key=True)否则在__table_args__中声明它:...

python – SQLAlchemy – 获取表的列表【代码】

我在文档中找不到关于此的任何信息,但是如何获得在SQLAlchemy中创建的表的列表? 我使用类方法来创建表.解决方法:所有表都收集在SQLAlchemy MetaData对象的tables属性中.要获取这些表的名称列表:>>> metadata.tables.keys() ['posts', 'comments', 'users']如果您正在使用声明性扩展,那么您可能不会自己管理元数据.幸运的是,元数据仍然存在于基类中,>>> Base = sqlalchemy.ext.declarative.declarative_base() >>> Base.metadata ...

如何使用连接从数据库查询生成嵌套JSON?使用Python / SQLAlchemy【代码】

我有一个指定的用例,但我的问题与一般的最佳方法有关. 我有三张桌子Order – primary key order_id OrderLine – Linking table with order_id, product_id and quantity. An order has 1 or more order lines Product – primary key product_id, each order line has one product在sqlachemy / python中,我如何生成嵌套的JSON:{"orders": [{"order_id": 1"some_order_level_detail": "Kansas""order_lines": [{"product_id": 1,...

python – flask admin:sqlalchemy.exc.InterfaceError(错误绑定参数8)【代码】

我试图使用下面的方法保存项目的审阅者,并且选择字段显示正确:# Query the user with Role.id == 4 as reviewer def reviewer_choices():return User.query.join(User.roles).filter(Role.id == 4)# Build a select field class ProjectView(sqla.ModelView):form_extra_fields = {'reviewer': sqla.fields.QuerySelectField(label='Reviewer',query_factory=reviewer_choices,)}但是,当我尝试保存它时,发生了错误: InterfaceErr...