В настоящее время я занимаюсь разработкой веб-приложения, использующего колбу и postgres для бэкэнда.В этом у меня есть модель церкви с полями lat, lng
и rofrs_value
.Чтобы найти церкви и их координаты в pgAdmin, я запускаю эту команду: select lat, lng, rofrs_value from church order by rofrs_value desc limit 10
.Это приводит к 10 показанным здесь результатам: Результат запроса с 10 строками .На бэкэнде у меня есть эта конечная точка и метод для получения значений rofrs:
@bp.route("/flood/rofrs/", methods=["GET"])
def risk_rofrs():
lat = request.args.get("lat", default=None, type=float)
lon = request.args.get("lon", default=None, type=float)
return church_rofrs(lat, lon)
def church_rofrs(lat, lon):
ROFRS_SCORES = {
0: 0,
1: 10,
2: 50,
3: 100,
4: 200
}
prob_level = db.session.query(Church.rofrs_value).filter(
Church.lng == lon,
Church.lat == lat
).all()
if len(prob_level) != 0:
print("The building is a church with a ROFRS of " + str(prob_level[0][0]))
return str(ROFRS_SCORES[prob_level[0][0]])
else:
print("Entity with given coordinates not found. Returning zero.")
return "0"
Когда я посещаю этот URL
<a href="http://localhost:5000/risks/flood/rofrs/?lat=52.364253408754152&lon=1.237043090299609" rel="nofollow noreferrer">http://localhost:5000/risks/flood/rofrs/?lat=52.364253408754152&lon=1.237043090299609</a>
, я получаю результат 0 и сообщение о том, что с помощьюзаданные координаты, даже если pgAdmin показывает, что в базе данных есть строка с этими координатами.
Кто-нибудь знает, что может быть причиной того, что SQLAlchemy не может найти соответствующую строку?Заранее спасибо.