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

python – Flask SqlAlchemy加入两个没有外键MYSQL的模型【代码】

我加入两个没有外键的模型: 楷模:class Users(db.Model):__tablename__ = "Users"userName = db.Column(db.String, primary_key=True)lastLogin = db.Column(db.DateTime)class TimeOff__tablename__ = "timeOff"timeOffID = db.Column(db.Integer, primary_key=True)userName = db.Column("userName", db.String, db.ForeignKey('appUsers.userName')),dayWork = db.Column(db.DateTime)视图:result = db.session.query(mode...

python – SQLAlchemy:在查询中覆盖关系定义的“order_by”【代码】

所以,我有一个类似的模型:class Foo(model):__tablename__ = "foo"id = Column(Integer, primary_key=True)data = relationship("FooData",cascade="all, delete-orphan",backref="foo",lazy="dynamic",order_by="desc(FooData.timestamp)")@propertydef first_item(self):# the problem is here:return self.data.order_by(asc("timestamp")).first()@propertydef latest_item(self):return self.data.first()class FooData(Mode...

python – 父模型上的SQLAlchemy load_only【代码】

当急切加载子关系时,如何只加载父模型的几列: 如果我只需要章节模型的标题栏,这是有效的:session.query(Book) .options(joinedload('chapters').load_only('title'))但这会引发错误:Query has only expression-based entities – can’t find property named‘chapters’.换句话说,我想在ORM语法中使用这个SQL:SELECT books.author,chapters.title, FROM books JOIN chapters ON book.id = chapters.book_id解决方法:错误消...

python – 可以在没有显式session.add()的情况下将对象添加到SQLAlchemy会话中吗?【代码】

我有许多类使用SQLAlchemy映射到表(如果重要的话,非声明性地).因为我希望应用程序可以进行单元测试,所以所有SQLAlchemy会话交互都被隔离到一个类中.使用该应用程序是这样的:m = Model("mysql://localhost/mydb") s1 = Service("somename") m.session.add(s1) s1 is m.get_service("somename") # True它实际上比那更精简,但在这里和我一起工作. 是否可以跳过session.add()步骤?换句话说,如果我实例化一个映射类,是否有可能自动添加...

Python / SQLAlchemy – 更新外键时的加载关系?【代码】

我有一节课:class Chart(Base):__tablename__ = 'chart'id = C('chart_id', Integer, primary_key=True)element_id = C(Integer, ForeignKey('element.element_id'))element = relationship(Element)name = C(String)def __init__(self, name):self.name = name用法很常见,chart = Chart('Some name') chart.element_id = element_id但是在设置element_id之后,chart.element为None.有没有办法在刷新/提交之前为新对象自动加载此关...

python – SQLAlchemy和Pyramid,如何从上下文中获取资源?【代码】

我在Pyramid Web应用程序中缠绕问题时遇到了问题.我的结构非常类似于Michael Merickel here描述的结构,除了我使用纯粹的遍历来查找我的观点. (它们被声明配置了context =’path.toResource’name =’myView’),相当标准的票价根据我从traversal wiki tutorial.我可以告诉我的应用程序有一个更复杂的URL结构虽然:我的用户资源在/ users / {user_id}和我的项目在/ projects / {project_id}下.我的所有资源都使用SQLAlchemy ORM保留;...

python – Sqlalchemy – 使用过滤器更新行会产生列表索引错误【代码】

我希望这是我关于这个宠物项目的最后一个问题. 我正在尝试使用当前时间更新表Clocktimes(column = time_out).我想通过UUID4创建的UUID进行选择.当我运行代码时,我在query.py(Sqlalchemy的一部分)中的函数上得到ListIndex超出范围错误.我在代码下面列出了相当短的函数. 我的代码:out = session.query(). filter(Clocktime.p_uuid == p_uuid). update(Clocktime.time_out == datetime.datetime.now())session.add(o...

Python Eve,SQLalchemy和ForeignKey【代码】

我正在使用SQLAlcemy后端开发基于Python Eve的RESTful服务.我有两个具有一对多关系的模型:class User(CommonColumns):"""Model of an user in the database"""__tablename__ = "user"id = Column(Integer, primary_key=True)username = Column(String, unique=True)email = Column(EmailType, unique=True)folders = relationship('Folder', backref='user')def __unicode__(self):return self.usernameclass Folder(CommonColumn...

python – 当存在重复条目时,使用SQLAlchemy / SQLite3高效插入多行【代码】

我正在使用SQLAlchemy将多行插入到SQLite3表中,并且这些条目通常已经在表中.一次插入一行非常慢,并捕获异常并在行已存在时继续.有没有一种有效的方法来做到这一点?如果该行已经存在,我想什么也不做.解决方法:您可以使用SQL语句INSERT OR IGNORE INTO ... etc. ...如果它是重复的,则简单地忽略插入.了解IGNORE冲突条款here 也许你可以在SQLAlchemy Insert中使用OR IGNORE作为前缀 – 在SQL语句中如何在INSERT和INTO之间放置OR IGNO...

python – Pycharm警告SqlAlchemy模型中的意外类型【代码】

在SqlAlchemy模型中,我收到来自pycharm的警告,说明列具有意外类型. 产生警告的简化代码如下:from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, Integer, StringBase = declarative_base()class Peptide(Base):__tablename__ = 'peptides'sequence = Column(String, primary_key=True)scan = Column(Integer)def __init__(self, scan, sequence):self.scan = scanself.sequence = sequence...

python – 自动更新sqlalchemy中的属性【代码】

我有一个sqlalchemy模型,设置如下:class Entry(Base):__tablename__ = 'entries'__table__ = Table('entries', Base.metadata,Column('id', Integer, primary_key=True, unique=True),Column('user_id', Integer, ForeignKey('users.id', onupdate="CASCADE", ondelete="RESTRICT")),Column('title', String(128)),Column('slug', String(128), index=True),Column('url', String(256), index=True),Column('entry', Text),Column...

python – sqlalchemy.exc.ProgrammingError :( ProgrammingError)无法调整类型’UUID’【代码】

我的桌子是categories = table('categories',Column('uuid', UUID(), default=uuid.uuid4,primary_key=True,unique=True, autoincrement=False),Column('name', String),Column('parent', String),Column('created_on', sa.types.DateTime(timezone=True),default=datetime.utcnow()))当我尝试插入数据时,我明白了sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt type 'UUID' 'INSERT INTO categories (uuid, na...

python – 如何配置sqlalchemy以正确存储表情符号?【代码】

使用sqlalchemy 0.9.7,我试图在启用utf8mb4的情况下将表情符号存储到MySQL 5.5中.然而,由于某种原因,sqlalchemy正在杀死我的表情符号字符,我无法弄清楚为什么.在尝试通过sqlalchemy保存数据之前,我可以在对象中看到表情符号字符.保存后,抛出错误,表情符号呈现为????. 错误如下.请注意,它包含输出类型(post.message)和post.message的调试消息.-------------------------------------------------------------------------------- DE...

python – 选择sqlalchemy mysql的批量行【代码】

我有一个MySQL数据库,有几千个论坛帖子文本.我想分批抓取它们,一次说1000个,然后在python3中给它们做些什么. 我的单个帖子查询如下:pquery = session.query(Post). filter(Post.post_id.like(post_id))如何更改这个以便给定post_id,它会返回该帖子和之后的999个帖子?解决方法:使用限制和抵消:pquery = session.query(Post).filter(Post.post_id.like(post_id)).limit(1000).offset(the_offset_val)

python – Flask-Admin / Flask-SQLAlchemy:为INSERT设置user_id = current_user【代码】

使用Flask-Admin Flask-SQLAlchemy我定义了三个模型:User,Apikey,Exchange. 当经过身份验证的用户通过Web管理界面创建新的Apikey时,我希望插入数据库的新行上的user_id设置为登录的当前user_id. 使用我当前的实现,用户可以选择她喜欢的任何用户(这是不希望的). 这是我对模型的定义:class User(db.Model, UserMixin):id = db.Column(db.Integer, primary_key=True)first_name = db.Column(db.String(255))last_name = db.Column(d...