简而言之问题:
当尝试根据多个主键(列)获取数据时,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 /