草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - 将 "external' 类模型与 flask sqlalchemy 相关联

我们为各种python模块使用中央类模型。该模型是使用SQLAlchemy定义的。这些类都继承自declarative_base。例如,我们的模型定义看起来像这样:Base=declarative_base()classPost(Base):__tablename__='Posts'id=Column(INT,primary_key=True,autoincrement=True)body=Column(TEXT)timestamp=Column(TIMESTAMP)user_id=Column(INT,ForeignKey('Users.uid'))我们一直在构建一个flask网络应

python - 如何在没有全局变量的 celery 任务中设置sqlalchemy session

总结:我想在celery任务中使用sqlalchemysession,而没有包含该session的全局变量。我在一个有celery任务的项目中使用SQLAlchemy,我有目前,我有一个全局变量“session”随我的celery应用程序设置(celery.py)一起定义,并有一个工作信号来设置它。session=scoped_session(sessionmaker())@celeryd_init.connectdefconfigure_workers(sender=None,conf=None,**kwargs):#loadtheapplicationconfiguration#d

python - SQLAlchemy、PostgreSQL 和 array_agg : How to select items from array_agg?

我想使用array_agg在子查询中,然后在我的主查询中通过它的数组索引使用聚合数据,但是,在尝试了许多不同的方法之后,我真的不知道应该怎么做;有人可以解释为什么在下面的示例中我得到了一系列None值而不是数组中的第一个类别吗?我知道下面的简化示例可以在不对数组[i]执行SELECT的情况下完成,但它将解释问题的性质:fromsqlalchemyimportIntegerfromsqlalchemy.dialects.postgresimportARRAYprods=(session.query(Product.id.label('id'),func.array_agg(Product

python - SQLAlchemy:声明性 Mixin 类中的 getter/setter

我正在尝试为我打算在我的数据库模式中使用的混合类定义简单的getter/setter方法:fromsqlalchemyimportColumn,Integer,create_enginefromsqlalchemy.ormimportsynonym,scoped_session,sessionmakerfromsqlalchemy.ext.declarativeimportdeclarative_base,declared_attrengine=create_engine('sqlite:///')Base=declarative_base(bind=engine)Session=sc

python - 在 SqlAlchemy ORM 中更新行

我正在尝试从数据库中获取一行,修改该行并再次保存。一切都通过使用SqlAlchemy我的代码fromsqlalchemyimportColumn,DateTime,Integer,String,Table,MetaDatafromsqlalchemy.ormimportmapperfromsqlalchemyimportcreate_engine,ormmetadata=MetaData()product=Table('product',metadata,Column('id',Integer,primary_key=True),Column('name',String(1024),n

python - SQLAlchemy - 连接条件失败,出现 AttributeError : Neither 'BinaryExpression' object nor 'Comparator' object has an attribute 'selectable'

我正在使用Pyramid运行SQLAlchemy。我正在尝试使用自定义“加入”条件运行查询:DBSession.query(A)\.outerjoin(A.b,B.a_id==A.id)\.all()但是查询失败并出现以下错误:AttributeError:Neither'BinaryExpression'objectnor'Comparator'objecthasanattribute'selectable'问题源于条件,就好像我删除它一样,查询有效:DBSession.query(A)\.outerjoin(A.b)\.all()我不明白这个问题,因为我遵循thedocumenta

python - 如何在 SQLAlchemy 中使用引擎的 SQL 方言生成带有 DDL 的文件?

假设我有一个指向MySQL数据库的引擎:engine=create_engine('mysql://arthurdent:answer42@localhost/dtdb',echo=True)我可以通过以下方式用表、FK等填充dtdb:metadata.create_all(engine)有没有一种简单的方法来生成包含所有DDL语句的SQL文件,而不是将这些DDL语句实际应用于dtdb?到目前为止,我已经求助于捕获echo=True生成的SQLAlchemy日志输出,并手动编辑它。但这太痛苦了。看起来SA有非常精细的模式管理API,但我还没有看到将模式定义简单地流式传输为文本的示例。

python - SQLAlchemy 中不区分大小写的字符串列?

我可以在sqlalchemy中创建不区分大小写的字符串列吗?我正在使用sqlite,并且可能有一种方法可以通过更改排序规则通过数据库来完成它,但我想将它保留在sqlalchemy/python中。 最佳答案 在SQLAlchemy0.8中,他们向所有String类型添加了collat​​ion参数。COLLATE关键字现在被多个数据库后端支持,包括MySQL、SQLite和Postgresql。你应该可以这样写:my_table=Table('table_name',meta,Column('my_column',String(25

python - SqlAlchemy 和多处理

我使用SqlAlchemy连接到我的数据库后端,并在我的Python应用程序中大量使用多处理。我遇到了一种情况,需要将对象引用从一个进程传递到另一个进程,这是数据库查询的结果。这是一个问题,因为当访问对象的属性时,SqlAlchemy试图将对象重新附加到另一个进程的当前session中,但失败并出现异常,因为对象附加在另一个session中:InvalidRequestError:Object''isalreadyattachedtosession'148848780'(thisis'159831148')如何处理这种情况?是否可以从第一个session中分离对象或在没有ORM相关内容

python - SQLAlchemy 小数精度

sqlalchemy的文档给出了一个例子:classsqlalchemy.types.DECIMAL(precision=None,scale=None,asdecimal=True)除None之外,您还可以使用哪些值来提高精度?我不太明白如何设置小数精度。 最佳答案 来自documentationprecision–在DDLCREATETABLE中使用的数字精度如果您想知道哪些值是可能的,请检查W3Schools的SQL数据类型:http://www.w3schools.com/sql/sql_datatypes_general.