在复合主键表的数据查询中获取vs filter_by

时间:2020-09-20 18:24:38

标签: mysql rest sqlalchemy

简而言之问题:

当尝试根据多个主键(列)获取数据时,query.get()和query.filter_by()有什么区别? (是否有速度因素,效率等),并且可以通过只提及几个主键来进行查询(说,我知道4个多重键中的2个)?

详细问题:

我正在为数据库编写Rest API,该数据库在SQLAlchemy中具有带有复合主键表(多个主键列)的表。假设我的表包含以下主键列:州,城市,我想使用其主键编写get查询。我发现我可以将其写为以下两个之一:

query(TableName).get_or_404(('StateName', 'CityName'))
query(TableName).filter_by(State = 'StateName', City = 'CityName')

在我都知道两个主键​​的情况下,两者都可以正常工作。但是,如果我只知道一个主键,我只能使其通过“ filter_by”(在其旁边添加.all())起作用,而不能使其“ get”,因为它给出了不足的参数错误。那么,在复合类型的情况下,通过主键实现查询的最佳方法是什么?还是我尝试实施它们的方式上有任何错误。

作为后续问题,有人可以告诉我是否为多个(3或4)主键获取查询实现URI,用法:.... site_path / / 是一种好的做法,还是不是吗?

0 个答案:

没有答案