【python – 使用SQLAlchemy批量upsert】教程文章相关的互联网学习教程文章

python – 在初始查询sqlalchemy中限制子集合【代码】

我正在构建一个api,如果用户请求它可以返回子资源.例如,用户有消息.我希望查询能够限制返回的消息对象的数量. 我找到了一个有用的提示,用于模仿子集合here中的对象数量.基本上,它表示以下流程:class User(...):# ...messages = relationship('Messages', order_by='desc(Messages.date)', lazy='dynamic')user = User.query.one() users.messages.limit(10)我的用例涉及有时返回大量用户. 如果我按照该链接中的建议并使用.limit()...

python – sqlalchemy:关闭声明性多态连接?【代码】

sqlalchemy中是否有一种方法可以在单个查询中关闭声明性的多态连接加载?大部分时间都很好,但我有:class A(Base) : discriminator = Column('type', mysql.INTEGER(1), index=True, nullable=False)__mapper_args__ = { 'polymorphic_on' : discriminator }id = Column(Integer, primary_key=True)p = Column(Integer)class B(A) : __mapper_args__ = { 'polymorphic_identity' : 0 }id = Column(Integer, primary_key=True)x = C...

python – sqlalchemy分页【代码】

我正在构建一个带有烧瓶和sqlalchemy的REST应用程序,我遇到了一个问题.我想查询所有用户的账簿数量.每个用户都有很多书,所以我的查询应该返回每个用户在结果集中拥有的书籍数量.// Models class User( object ):__tablename__ = 'user'class Book( object ):__tablename__ = 'book'// Metadata users_table = Table( 'user', metadata,Column( 'id', Integer, primary_key = True ),Column( 'username', String( 50 ), u...

python – 处理与SQLAlchemy的事务冲突

我对数据库比较陌生.我确信这是经验可以回答的那种问题. 我正在使用SQLAlchemy和PostgreSQL.我有一个系统设置,其中多个进程分布在几台计算机上执行各种任务,然后更新数据库.我在测试中还没有遇到任何交易冲突,但理论上它们仍然可行. 根据我在Google上找到的信息,看起来我要么必须获取数据库锁,要么准备重启事务.不幸的是,关于如何实际执行此操作的信息很少. 我假设,为了重新启动事务,SQLAlchemy抛出了一些异常,我的代码必须捕获并执...

python – sqlalchemy中的多对多.如果标记已存在,则阻止SQLAlchemy插入表中【代码】

我有几个ORM映射表,(缩小)看起来像这样:class Tag(Base):__tablename__ = 'tags'tag_name = Column(String, primary_key=True)task2tag_assoc = Table('tasktags', Base.metadata,Column('task_id', UUID, ForeignKey('tasks.task_id', ondelete='cascade'), primary_key=True),Column('tag_name', String, ForeignKey('tags.tag_name', ondelete='cascade'),primary_key=True))class Task(Base):__tablename__ = 'tasks'task_id ...

python – 避免在多对多的SQLAlchemy中检索要删除的对象【代码】

有没有办法避免在多对多关系中检索要删除的对象?assign = Table('manytomany', Base.metadata,Column('pid', String(...), ForeignKey('parent.pid')),Column('cid', String(...), ForeignKey('child.cid')) )class Parent():....childs = relationship("Child", secondary = assign, backref = 'parent')我知道我可以这样做:obj = session.query(Table).get(pk_id) session.delete(obj)但我想只有一个数据库访问,如:session.qu...

python – 布尔类型列,作为SQLAlchemy中的ClauseElement【代码】

为什么SQLAlchemy中不可能将布尔类型列用作ClauseElement本身?session.query(Table).filter(Table.name == 'huszar', Table.valid)当然Table.valid == True会起作用,但对我来说看起来有点难看……解决方法:我想也许你在0.7上并且ORM在单个filter()调用中还没有支持多个标准,这是在0.8中添加的,如果是独立的话,0.7似乎还需要表绑定列.一切都在0.8:from sqlalchemy import * from sqlalchemy.orm import * from sqlalchemy.ext.dec...

python – SQLAlchemy:有没有任何好的自动重命名列方法【代码】

我正在使用SQLAlchemy ORM几天,我正在寻找一种方法来获取Session.query()的结果中的tablename前缀. 例如 :myId = 4 ... data = session.query(Email.address).filter(Email.id==str(myId)).one()print data.keys()这将显示:("address",)我希望得到类似的东西:("Email.address",)有没有办法做到这一点,而无需更改类属性和表列名称.这个例子有点虚拟,但在更一般的目的中,我想在结果中按表名称为所有列名添加前缀,以确保结果总是在...

python – SqlAlchemy连接没有外键的表【代码】

我在SqlAlchemy中有两个表class T1(Record, SqlBase):__tablename__ = 'table1'__table_args__ = (PrimaryKeyConstraint('column'), {'autoload': True},)class T2(Record, SqlBase):__tablename__ = 'table2'__table_args__ = (PrimaryKeyConstraint('column'), {'autoload': True},)我想在一些常见列上加入这两个表session.query(T1).join(session.query(T2), T1.column == T2.column)但是我收到了一个错误InvalidRequestError: ...

python – ‘virtualenv”pip install sqlalchemy’但是’pip list’看不到【代码】

我学会了安装python的虚拟环境. 看来我不太熟悉一些基本的常识. 那是, 在virtualenv中,virtualenv test然后我有一个名为test的虚拟环境. 然后我把它激活了source ./test/bin/activate然后我进入虚拟环境 首先,我运行pip列表来检查包pip list然后我得到’pip’和’设置工具’ 然后我安装’sqlalchemy’pip install sqlalchemy我得到了’成功安装sqlachemy’的信息但当我检查安装的包时pip list我仍然只有’pip’和’setuptools’没有...

python – 使用SQLAlchemy批量upsert【代码】

参见英文答案 > SQLAlchemy – performing a bulk upsert (if exists, update, else insert) in postgresql 1个> How to UPSERT (MERGE, INSERT … ON DUPLICATE UPDATE) in PostgreSQL? 6个我正在使用SQLAlchemy 1.1.0b将大量数据批量插入到PostgreSQL中,并且我遇到了重复的键错误.from sqlalchemy import * from sqlalchemy.orm import sess...

python – 向字符串SQL查询添加参数时出现SQLAlchemy错误【代码】

我正在尝试使用SQLALchemy 1.1.2编写字符串SQL查询.我按照文档中关于using textual SQL的解释,但在运行以下代码时遇到语法错误:from sqlalchemy.sql import text# Create a database connection called "connection"...q = text('USE :name') connection.execute(q, name='DATABASE_NAME')这是错误消息:"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right ...

python – 为什么SQLAlchemy / associationproxy复制我的标签?【代码】

我正在尝试使用关联代理进行标记,与the example in the docs非常相似.这是我的模式的一个子集(它是一个博客),使用声明:class Tag(Base):__tablename__ = 'tags'id = Column(Integer, primary_key=True)tag = Column(Unicode(255), unique=True, nullable=False)class EntryTag(Base):__tablename__ = 'entrytags'entry_id = Column(Integer, ForeignKey('entries.id'), key='entry', primary_key=True)...

python – Sqlalchemy文件组织【代码】

有没有人对组织基于sqlalchemy的项目有任何见解?我有很多表和类与外键和关系.在分离类,表和映射器方面,每个人都在做什么?我是相对较新的框架,所以任何帮助将不胜感激. 例:classA.py # table definition and class A definition classB.py # table definition and class B definition### model.py import classA,classB map(classA.classA,clasSA.table) map(classB.classB,clasSB.table)在classA中包含映射器,而classB可以工作,...

python – Gearman SQLAlchemy – 继续失去MySQL线程【代码】

我有一个python脚本,设置了几个齿轮工人.他们在我有的SQLAlchemy模型上调用了一些方法,它们也被Pylons应用程序使用. 一切都工作正常一两个小时,然后MySQL线程丢失,所有查询都失败.当我为pool_recycle定义这么低的值时,我无法弄清楚为什么线程会丢失(我在3个不同的服务器上得到相同的结果).另外,为什么不创建新连接? 有什么想法可以调查吗?import gearman import json import ConfigParser import sys from sqlalchemy import cre...