草庐IT

sqlalchemy-migrate

全部标签

python - 不区分大小写的 Flask-SQLAlchemy 查询

我正在使用Flask-SQLAlchemy从用户数据库中进行查询;然而,虽然user=models.User.query.filter_by(username="ganye").first()会回来在做user=models.User.query.filter_by(username="GANYE").first()返回None我想知道是否有办法以不区分大小写的方式查询数据库,这样第二个示例仍然会返回 最佳答案 您可以在过滤器中使用lower或upper函数:fromsqlalchemyimportfuncuser=models.U

python - SQLAlchemy:引擎、连接和 session 的区别

我使用SQLAlchemy,至少有三个实体:engine、session和connection,它们有execute方法,所以如果我例如想从table中选择所有记录我可以这样做engine.execute(select([table])).fetchall()还有这个connection.execute(select([table])).fetchall()甚至这个session.execute(select([table])).fetchall()-结果是一样的。据我了解,如果有人使用engine.execute,它会创建connection,打开session(Alchemy会为您

python - Flask-SQLAlchemy 导入/上下文问题

我想构建我的Flask应用程序,如下所示:./site.py./apps/members/__init__.py./apps/members/models.pyapps.members是一个Flask蓝图。现在,为了创建模型类,我需要拥有应用程序,例如:#apps.members.modelsfromflaskimportcurrent_appfromflaskext.sqlalchemyimportSQLAlchemydb=SQLAlchemy(current_app)classMember(db.Model):#fieldsherepass但如果我尝试将该模型导入我的蓝图应用程序,

python - 奇怪的 SQLAlchemy 错误消息 : TypeError: 'dict' object does not support indexing

我正在使用手工制作的SQL从PG数据库中获取数据,使用SqlAlchemy。我正在尝试一个包含类似运算符'%'的SQL的查询,这似乎通过循环抛出SqlAlcjhemy:sql="""SELECTDISTINCTu.namefromuseruINNERJOINcitycONu.city_id=c.idWHEREc.designation=upper('fantasy')ANDc.idIN(selectidfromref_geogwhereshort_nameLIKE'%opt')"""#Thelastlineintheabovestatementthrowstheerrormention

java - 最接近于 Java/Scala 的 SQLAlchemy

已结束。此问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提出有关书籍、工具、软件库等方面的建议的问题。您可以编辑问题,以便用事实和引用来回答它。关闭2年前。Improvethisquestion作为一个不熟悉Python的人,我经常听到很多关于SQLAlchemy的赞美。所以我想了解:与jOOQ等“类型安全的SQL构建器”相比,它提供了什么?或QueryDSL?在Java(或Scala)世界中是否存在与它更接近的等价物?我看过ApacheEmpire-DB在这方面提到... 最佳答案 关于SQ

python - 如何使用 SQLAlchemy 只创建一张表?

我无法使用SQLAlchemy创建单个表。我可以通过调用Base.metadata.create_all(engine)来创建它,但是随着表的数量增加,这个调用需要很长时间。我动态创建表类,然后填充它们。fromsqlalchemyimportcreate_engine,Column,Integer,Sequence,String,Date,Float,BIGINTfromsqlalchemy.ext.declarativeimportdeclarative_basefromsqlalchemy.ormimportsessionmakerBase=declarative_base()c

python - 如何在 sqlalchemy ORM 查询中使用 NOT IN 子句

如何将以下mysql查询转换为sqlalchemy?SELECT*FROM`table_a`ta,`table_b`tbwhere1ANDta.id=tb.idANDta.idnotin(selectidfrom`table_c`)到目前为止,我有这个用于sqlalchemy:query=session.query(table_a,table_b)query=query.filter(table_a.id==table_b.id) 最佳答案 ORM内部描述了not_in()运算符(以前是notin_()),所以你可以说:query=

python - 使用 SQLAlchemy 在不经常使用的 Python/Flask 服务器上避免 "MySQL server has gone away"

如果不存在,如何配置Flask/SQLAlchemy以创建新的数据库连接?我有一个不常访问的Python/Flask服务器,它使用SQLAlchemy。它每隔几天就会被访问一次,并且在第一次访问时它经常会抛出一个“MySQL服务器已经消失”的错误。后续的页面浏览量都很好,但是出现这个初始错误看起来很不专业。我想知道处理此问题的正确方法-诸如“请假很长时间”之类的建议(在这种情况下大约需要4天)似乎不正确。如何测试是否缺少数据库连接并在需要时创建一个? 最佳答案 我之前遇到过这个问题,发现处理它的方法是不保留session。问题是你试

python - 内存高效的内置 SqlAlchemy 迭代器/生成器?

我有一个~10M记录MySQL表,我使用SqlAlchemy与之交互。我发现对这个表的大子集的查询会消耗太多的内存,即使我认为我使用的是一个内置的生成器,它可以智能地获取数据集的小块:forthinginsession.query(Things):analyze(thing)为了避免这种情况,我发现我必须构建自己的迭代器,它会分block进行:lastThingID=NonewhileTrue:things=query.filter(Thing.id这是正常的还是我缺少关于SA内置生成器的东西?thisquestion的答案|似乎表明内存消耗不是预期的。 最

python - 使用 SQLAlchemy ORM 批量插入

有没有办法让SQLAlchemy进行批量插入而不是插入每个单独的对象。即,在做:INSERTINTO`foo`(`bar`)VALUES(1),(2),(3)而不是:INSERTINTO`foo`(`bar`)VALUES(1)INSERTINTO`foo`(`bar`)VALUES(2)INSERTINTO`foo`(`bar`)VALUES(3)我刚刚将一些代码转换为使用sqlalchemy而不是原始sql,虽然现在使用起来好多了,但它现在似乎变慢了(高达10倍),我想知道这是否是原因。也许我可以更有效地使用session来改善这种情况。目前我有autoCommit=False并在