gpt4 book ai didi

python - 在SQLAlchemy中,如何根据月份调用不同的数据库表

转载 作者:行者123 更新时间:2023-11-29 11:14:22 24 4
gpt4 key购买 nike

在SQLAlchemy中,如何根据月份调用不同的数据库表。每个月对应一个数据库表。我这样做了,但是出现了问题。

Class MyBaseClass (object):
     Id = db.Column (db.Integer, primary_key = True)

在我的界面中,是这样的

Def test ():
Time = request.get_json (). Get ( 'time')
Tablename = str (time) # time format: such as 201610
Table_object = type (tablename.title (), (MyBaseClass, db.Model), { '__tablename__': tablename})

第一次调用接口(interface)没问题,第二次调用就会出现如下错误

Specify 'extend_existing = True' to redefine options and columns on an existing Table object. Sqlalchemy.exc.InvalidRequestError: Table 'xxx' is already defined for this MetaData instance.

建表后是否可以动态建表来删除这个实例?因为我要第二次打电话,已经会建议了。

最佳答案

我是一名 SQLAlchemy 初学者,刚刚赢得了与 ORM 框架完全相同的战斗。您构建新类型的方法是正确的。您还应该查看Augmenting the Base手动的。这是my solution结合了基础增强和动态类型创建。

我已经解决了这个问题,但这不是我“赢得”这场战斗的方式。我的建议是:SQLAlchemy ORM 旨在让您的生活变得轻松,但要利用它,您必须根据 ORM 期望调整数据。这就是我所做的,而不是与之抗争,并且对最终结果感到非常满意。

但是,如果您需要坚持历史设计或更改它没有意义,那么使用 ORM 会带来更多的眼泪而不是喜悦,最简单的方法是切换到 SQLAlchemy Core这更加灵活和宽容。

关于python - 在SQLAlchemy中,如何根据月份调用不同的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39989014/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com