草庐IT

SQLALCHEMY_TRACK_MODIFICATIONS

全部标签

python - Sqlalchemy 中的复合键

我正在使用flask-sqlalchemy构建一个webapp,我有以下模型:classPost(db.Model):id=db.Column(db.Integer,primary_key=True)name=db.Column(db.String(80),unique=True)candidates=db.relationship('Candidate',backref='post',lazy='dynamic')def__init__(self,name):self.name=namedef__repr__(self):return""%self.nameclassCandidat

python - sqlalchemy 在关系上创建反向引用时出错

我有两个非常简单的模型。在我的Post模型中,User表中应该有两个关系。一个是给帖子的所有者,一个是给帖子的最后一位编辑。它们可以是不同的值,但都引用同一个User表。我的模型是这样设置的classPost(Base):last_editor_id=Column(BigInteger,ForeignKey('users.id'),nullable=True)last_editor=relationship('User',backref='posts',foreign_keys=[last_editor_id])owner_id=Column(BigInteger,ForeignKey

python - 使用 Flask-SQLAlchemy 删除行

我正在尝试使用flask和SQLAlchemy的扩展来创建一个函数来删除数据库中的记录。问题是,它不是只删除一行,而是删除所有行。有人可以告诉我我的代码有什么问题吗?@app.route('/admin/delete/',methods=['GET','POST'])@requires_authdefdelete_page(page_id):page=Page.query.get(page_id)ifnotpage:abort(404)ifpage.children:flash('Youcannotdeleteapagewithchildpages.Deletethem,orassig

python - SQLAlchemy 将一列的默认值设置为另一列的默认值

我正在尝试为物质编写一个类,其中包含一个名称(用于实验室中常用的名称)和另一列用于长名称(以防名称实际上不完整)。如果没有指定长名称,是否可以告诉类将名称字段的值复制到长名称字段?我试过这样的:classSubstance(Base):__tablename__="substances"id=Column(Integer,primary_key=True)code=Column(String,unique=True)name=Column(String,unique=True)long_name=Column(String,unique=True,default=name)但这失败了,

python - SQLAlchemy:对结果进行操作

我正在尝试做一些相对简单的事情,吐出列名和相应的列值,并可能过滤掉一些列,这样它们就不会显示。这是我尝试的(当然是在初始连接之后):metadata=MetaData(engine)users_table=Table('fusion_users',metadata,autoload=True)s=users_table.select(users_table.c.user_name==username)results=s.execute()ifresults.rowcount!=1:return'Sorry,usernotfound.'else:forresultinresults:fo

python - 如何从 SqlAlchemy 中的多对多集合中删除所有项目?

当我需要从声明性ORM多对多关系中删除一个对象时,我应该这样做:blogpost.tags.remove(tag)嗯。如果我需要清除所有这些关系(不仅是一个),我应该怎么做?典型情况:我想为我的博文设置一个新的标签列表。所以我需要...:删除该博文和标签之间的所有现有关系。设置新关系并创建新标签(如果它们不存在)。当然,可以有更好的方法来做到这一点。在这种情况下,请告诉我。 最佳答案 这是用于清除列表的标准Python习惯用法——分配给“整个列表”切片:blogpost.tags[:]=[]您可能希望直接分配新的标签集,而不是空列表

python - 如何在 SQLAlchemy 中插入 NULL 值?

我有一个包含以下列的表:Column('type',String(128))在数据库中插入新行时如何将此列设置为NULL?我试过这样做:self.type=NULL;Python中没有NULL类型,所以我不知道该怎么做。 最佳答案 与其尝试self.type=NULL试试YaroslavAdminsuggestedself.type=None因为Python中NULL的等价物是None。 关于python-如何在SQLAlchemy中插入NULL值?,我们在StackOverflow上找

python - 为 SQLAlchemy 批量更新插入寻找更好的策略

我有一个Flask应用RESTful应用程序接口(interface)。其中一个API调用是带有JSON负载的“批量更新插入”调用。我正在为性能而苦苦挣扎。我尝试的第一件事是使用merge-result在Query对象上,因为...Thisisanoptimizedmethodwhichwillmergeallmappedinstances,preservingthestructureoftheresultrowsandunmappedcolumnswithlessmethodoverheadthanthatofcallingSession.merge()explicitlyforea

python - sqlalchemy 使用 ORM 创建 VIEW

我创建了以下ORM:fromsqlalchemyimportColumn,Integer,String,UniqueConstraintfromsqlalchemy.dialects.postgresqlimportJSONBfromsqlalchemy.ext.declarativeimportdeclarative_baseBase=declarative_base()classTableA(Base):__tablename__='table_a'id=Column(Integer,primary_key=True,nullable=False)identifier=Column

python - Flask-Admin 使用 SQLAlchemy 上下文相关函数创建 View

按照this中的说明,我有一个数据模型,其中一列依赖于其他列值页面我创建了一个上下文相关的函数,用于确定创建时此特定列的值,如下所示:defget_column_value_from_context(context):#InstructionstoproducevaluereturnvalueclassMyModel(db.Model):id=db.Column(db.Integer,primary_key=True)my_column=db.Column(db.String(64),nullable=False,default=get_column_value_from_contex