草庐IT

Sqlalchemy-searchable

全部标签

python - 将 SQLAlchemy 结果作为字典而不是列表返回

当我检查查询结果时,它看起来像一个列表列表。我想返回一个将列名映射到结果值的字典列表。如何将结果行转换为字典?results=db.session.query(PendingPost.campaign_id.label('campaign_id'),Campaign.title.label('title'),sqlalchemy.func.count(PendingPost.status).label('status_count'),).join(Campaign,Campaign.id==PendingPost.campaign_id,).join(Areas,Areas.id==P

python - Flask-SQLAlchemy - session 如何与多个数据库一起工作?

我正在做一个Flask项目,我正在使用Flask-SQLAlchemy。我需要使用多个现有的数据库。我创建了“app”对象和SQLAlchemy对象:fromflaskimportFlaskfromflask_sqlalchemyimportSQLAlchemyapp=Flask(__name__)db=SQLAlchemy(app)在配置中,我设置了默认连接和附加绑定(bind):SQLALCHEMY_DATABASE_URI='postgresql://pg_user:pg_pwd@pg_server/pg_db'SQLALCHEMY_BINDS={'oracle_bind':'o

python - SQLAlchemy 中的 with_entities 和 load_only 有什么区别?

查询我的数据库时,我只想加载指定的列。使用with_entities创建查询需要引用模型列属性,而使用load_only创建查询需要与列名称对应的字符串。我更愿意使用load_only,因为使用字符串创建动态查询更容易。两者有什么区别?load_onlydocumentationwith_entitiesdocumentation 最佳答案 有一些不同。丢弃不需要的列时最重要的一个(如问题中所示)是使用load_only仍会导致创建对象(模型实例),而使用with_entities将只需获取包含所选列值的元组即可。>>>query=

python - SqlAlchemy:如何实现 DROP TABLE ... CASCADE?

我需要删除具有外键约束的PostgreSQL数据库中的表,并且需要DROPTABLE...CASCADE。我可以执行原始SQL:engine.execute("DROPTABLE%sCASCADE;"%table.name)。但是,我想实现此行为,以便我可以为postgresql方言执行table.drop(engine)。如何解决这个问题? 最佳答案 您可以customizethecompilationofconstructs像这样:fromsqlalchemy.schemaimportDropTablefromsqlalchem

python - 几个多对多表与 sqlalchemy 连接

SQLalchemy的新功能,这是我的问题:我的模型是:user_group_association_table=Table('user_group_association',Base.metadata,Column('user_id',Integer,ForeignKey('user.id')),Column('group_id',Integer,ForeignKey('group.id')))department_group_association_table=Table('department_group_association',Base.metadata,Column('de

python - 使用字典对 sqlalchemy 进行广义插入

我正在Flask中构建一个应用程序,并且定义了多个SQLAlchemy模型。我有一个包含每种模型类型的键/值对的字典。我想要一个使用字典的通用插入...这需要映射器吗?我知道wtforms.ext.sqlalchemy.orm.model_form()生成一个带有populate_obj(model)的对象,所以这是可能的。我已经梳理了文档但找不到它。我可以稍后执行提交,但现在需要一个快捷方式来填充对象。请问,有没有人有专业知识?fromflaskimportFlaskfromflask.ext.sqlalchemyimportSQLAlchemyapp=Flask(__name__)

python - 使用核心 SQLAlchemy 插入和更新

我有一个没有元数据或orm类的数据库(该数据库已经存在)。我设法让选择的东西工作:fromsqlalchemy.sql.expressionimportColumnClausefromsqlalchemy.sqlimporttable,column,select,update,insertfromsqlalchemy.ext.declarativeimport*fromsqlalchemy.ormimportsessionmakerfromsqlalchemyimportcreate_engineimportpyodbcdb=create_engine('mssql+pyodbc://

python - 为 SQLAlchemy 的 PostgreSQL JSONB 实现使用自定义 JSON 编码器

我正在使用SQLAlchemy的核心库访问一些PostgreSQL数据库。假设我有下表:createtablefoo(jjsonb);以及以下python代码:fromdecimalimport*fromsqlalchemyimportTable,Column,Integer,String,MetaData,ForeignKey,DateTimefromsqlalchemy.dialects.postgresqlimportJSONBmetadata=MetaData(schema="public")foo=Table('foo',metadata,Column('f',JSONB))

python - SQLAlchemy 返回元组而不是字典

我已经将SQLAlchemy更新到0.6,但它破坏了一切。我注意到它返回的元组不再是字典。这是一个示例查询:query=session.query(User.id,User.username,User.email).filter(and_(User.id==id,User.username==username)).limit(1)result=session.execute(query).fetchone()这段代码用于在0.5中返回一个字典。我的问题是如何返回字典? 最佳答案 session.execute从未返回字典,它返回一个

python - SQLAlchemy 记录更改日期和用户

这与另一个超过3年的问题非常相似:What'sagoodgeneralwaytolookSQLAlchemytransactions,completewithauthenticateduser,etc?我正在开发一个应用程序,我想在其中记录对特定表的所有更改。当前有一个reallygood"recipe"thatdoesversioning,但我需要修改它以记录更改发生时的日期时间和进行更改的用户ID。我采用了与SQLAlchemy打包在一起的history_meta.py示例,并让它记录时间而不是版本号,但我无法弄清楚如何传递用户ID。我上面提到的问题建议在session对象中包含用