Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python SQLAlchemy ORM对不同的表使用相同的模型,并传递变量以运行查询_Python_Postgresql_Sqlalchemy - Fatal编程技术网

Python SQLAlchemy ORM对不同的表使用相同的模型,并传递变量以运行查询

Python SQLAlchemy ORM对不同的表使用相同的模型,并传递变量以运行查询,python,postgresql,sqlalchemy,Python,Postgresql,Sqlalchemy,我有不同的数据库表,它们具有相同的列,但我想将它们分开,以便更容易获取某些数据。这就是我到目前为止所做的: 类TestMixin: id=列(UUID(as_UUID=True), 主键=真, nullable=False, 唯一=正确, 默认值=uuid.uuid4) 卷=列(数组(浮点)) 定义报告(自我): 返回“”%(自卷) Base=声明性_Base() 类Test1Model(TestMixin,Base): __tablename_uuu='test_1' 类Test2Model(

我有不同的数据库表,它们具有相同的列,但我想将它们分开,以便更容易获取某些数据。这就是我到目前为止所做的:

类TestMixin:
id=列(UUID(as_UUID=True),
主键=真,
nullable=False,
唯一=正确,
默认值=uuid.uuid4)
卷=列(数组(浮点))
定义报告(自我):
返回“”%(自卷)
Base=声明性_Base()
类Test1Model(TestMixin,Base):
__tablename_uuu='test_1'
类Test2Model(TestMixin,Base):
__tablename_uuu='test_2'
类别测试(数据库):
def get_db_模型(自身,模型):
如果模型==“test1”:
返回test1模型
elif模型==“test2”:
返回Test2Model
def插入测试(自测试、测试、卷):
Model=self.get\u db\u Model(测试)
结果=模型(体积=体积)
self.session.add(结果)
self.session.commit()
def get_测试(自测试):
Model=self.get\u db\u Model(测试)
返回self.session.query(Model.all)()
我创建了一个mixin,每个表有不同的模型。这很好,但并不像我希望的那样理想、动态和可伸缩。如果我有一个模型需要一个表名参数,并且取决于它从表函数中插入的表变量,我将是完美的。类似(不幸的是,此代码无法工作):

类TestModel(TestMixin、Base、tablename):
__tablename_u=tablename
类别测试(数据库):
def get_db_模型(自身,表名):
返回TestModel(表名)
def插入测试(自身、卷):
Model=self.get\u db\u Model('test\u 1'))
#或测试_2,具体取决于我要插入的表
结果=模型(体积=体积)
self.session.add(结果)
self.session.commit()
def get_测试(自测试):
Model=self.get_db_Model('test_2'))
返回self.session.query(Model.all)()
炼金术能做到这一点吗?提前谢谢