我有一个专栏"价格"在我的API中
price = db.Column(db.Float)
我想查询这个价格:
def get(self, id, aPrice, bPrice):
meal = MealModel.query.filter(MealModel.category.has(id=id)).all()
if meal:
return[meal.json() for meal in MealModel.query.filter(MealModel.category.has(id=id), MealModel.price >= aPrice, MealModel.price <= bPrice).all() ]
return{'message': 'mealId not found'}, 404
使用此路由:
api.add_resource(MealbyCat, '/meal/category/<int:id>/<float:aPrice>/<float:bPrice>')
直到bPrice = 9.99绝对正确
bPrice = 10.0我只吃饭,价格为1.99 20.0到2.99 ..等等...
与100.0相同的行为
为什么会出现这种行为?我怎么能解决这个问题呢?
答案 0 :(得分:0)
我猜你的MealModel.price
,aPrice
,MealModel.price
和bPrice
都是字符串。比较字符串时,“2.5”&gt; “20”等尝试
return[meal.json() for meal in MealModel.query.filter(MealModel.category.has(id=id), float(MealModel.price) >= float(aPrice), float(MealModel.price) <= float(bPrice)).all()
如果有效,请考虑将float()
置于更好的位置。