草庐IT

sqlalchemy-migrate

全部标签

python - SQLAlchemy 如何按多对多的 child 进行过滤

我在问一个我在SQLAlchemy中遇到的问题,并在编写时找到了解决方案。无论如何我都会发布它以防万一它对某人有帮助:)假设我有一个似乎有效的多对多关系(至少我可以获取child)三个表:posts、tags和post_tags。importsqlalchemyasalcclassTag(Base):__tablename__='tags'id=alc.Column(alc.Integer,primary_key=True)name=alc.Column(alc.String)accepted=alc.Column(alc.Integer)posts=relationship('Pos

python - SQLAlchemy 核心 : order by desc

在SQLAlchemy核心中使用“ORDERBYfooDESC”执行select语句的正确方法是什么?(核心,不是ORM!)我目前直接在order_by中包含方向:mytable.select(order_by='nameDESC')...它有效(虽然我不喜欢它,因为它有点“hackish”),但是SQLAlchemy给了我以下警告:SAWarning:Can'tresolvelabelreference'nameDESC';convertingtotext()(thiswarningmaybesuppressedafter10occurrences)util.ellipses_str

python - 在 sqlalchemy 中触发

我有两个通过外键关联的表,这里他们使用的是声明式映射classTask(DeclarativeBase):__tablename__='task'id=Column(Integer,primary_key=True)state=Column(Integer,default=0)obs_id=Column(Integer,ForeignKey('obs.id'),nullable=False)classObs(DeclarativeBase):__tablename__='obs'id=Column(Integer,primary_key=True)state=Column(Intege

python - 如何在 SQLAlchemy 中实现空合并运算符?

或者我该如何使它发挥作用?我有一个间隔对象:classInterval(Base):__tablename__='intervals'id=Column(Integer,primary_key=True)start=Column(DateTime)end=Column(DateTime,nullable=True)task_id=Column(Integer,ForeignKey('tasks.id'))@hybrid_property#usedtojustbe@propertydefhours_spent(self):end=self.endordatetime.datetime.n

python - sqlalchemy:从表中获取最大/最小/平均值

我有这个问题:mps=(session.query(mps).filter_by(idc=int(c.idc)).filter_by(idmp=int(m.idmp)).group_by(func.day(mps.tschecked))).all()我的问题是,我不知道如何(使用sqlalchemy)从表中提取最大/最小/平均值...我找到这个:Database-IndependentMAX()FunctioninSQLAlchemy但我不知道在哪里使用这个func.max/min/avg...有人能告诉我怎么做吗?能举个例子吗? 最佳答案

python - 如果仅用于原始 sql 查询,是否仍建议使用 SQLAlchemy?

使用Flask,我很想知道SQLAlchemy是否仍然是使用原始SQL(直接SELECTxFROMtableWHERE...)查询数据库的最佳方式,而不是使用ORM或者是否有更简单但功能强大的替代方案?感谢您的回复。 最佳答案 我一直使用SQLAlchemy进行直接查询。主要优势:它为您提供了针对SQL注入(inject)攻击的最佳保护。SQLAlchemy做正确的事,无论你给它什么参数。我发现它在根据条件调整生成的SQL方面也很有效。显示上面有多个过滤器控件的结果集?只需在一组if/elif/else结构中构建您的查询,您就知道您

python - 跨多个表的 SQLAlchemy 关系

我正在尝试创建一个跨越3个表的关系,但我不太明白语法。我有3个表TableA、TableB和TableC,我要建模的关系是:TableA.my_relationship=relationship('TableC',primaryjoin='and_(TableA.fk==TableB.pk,TableB.fk==TableC.pk)',viewonly=True)以便在TableA的实例上我可以执行instance_of_a.my_relationship以获取与instance_of_a间接关联的TableC记录 最佳答案 fro

python - sqlalchemy现有数据库查询

我正在使用SQLAlchemy作为Python项目的ORM。我创建了几个模型/模式,并且工作正常。现在我需要查询一个现有的MySQL数据库,没有插入/更新只是select语句。我如何围绕这个现有数据库的表创建一个包装器?我已经简要浏览了sqlalchemy文档和SO,但找不到任何相关内容。所有人都建议执行方法,我需要在其中编写原始sql查询,而我想以与SA模型相同的方式使用SQLAlchemy查询方法。例如,如果现有的数据库有表名User那么我想使用dbsession查询它(只有选择操作,可能有连接) 最佳答案 您似乎认为SQLAl

python - 使用 sqlalchemy 定义数据库中的日期时间

我应该在定义表时将()与datetime.now一起使用吗?什么代码错了1或2?1:Base=declarative_base()classT(Base):__tablename__='t'created=Column(DateTime,default=datetime.now)2:Base=declarative_base()classT(Base):__tablename__='t'created=Column(DateTime,default=datetime.now()) 最佳答案 你想要第一个案例。您正在做的是告诉SqlA

python - 如何获取字符串列的sqlalchemy长度

考虑这个简单的表定义(使用SQLAlchemy-0.5.6)fromsqlalchemyimport*db=create_engine('sqlite:///tutorial.db')db.echo=False#TrychangingthistoTrueandseewhathappensmetadata=MetaData(db)user=Table('user',metadata,Column('user_id',Integer,primary_key=True),Column('name',String(40)),Column('age',Integer),Column('passw