SQLAlchemy查询-动态类选择

时间:2018-07-06 20:10:46

标签: python flask-sqlalchemy

我可以找到许多有关如何在'filter_by'部分是动态的情况下构建这些查询的示例,但是我似乎找不到任何类名是动态位的东西。我确定答案一定存在,只是不确定要搜索什么。

我的用例是这样的:我需要构建一个动态的SQLAlchemy查询。缺点是它的类名改变了而不是过滤器变量。查询类型将始终为'.get()',所以我在这里很好。我还应该说,仅仅在类名应该插入的地方插入变量是行不通的。

db_model = request.values.get("db_model_class")
item_id = request.values.get("item_id")

result = db.session.query(db_model).get(int(item_id))

如何进行这项工作?

2 个答案:

答案 0 :(得分:1)

创建相关类的查找:

models = {"Foo": Foo,
          "Bar": Bar,
          "...": ...}

并获得课程:

db_model = models[request.values.get("db_model_class")]

答案 1 :(得分:-1)

db_model = request.values.get(“ db_model_class”) item_id = request.values.get(“ item_id”)

问题可能出在这里。 您需要设置调试点。

IljaEverilä的回答很好。因此,您需要检查获取参数的方式。

如果您使用的是pycharm,请配置调试设置。

如果您使用的是Macbook, 单击运行->编辑配置-> enter image description here

然后单击代码的左边距,然后使用右上角的调试按钮重新启动应用程序。当您再次请求url时,您将在请求对象中看到您的视图功能。 enter image description here