With flask-peewee if you want to run a SQL query you can do:
db = Database(app)
db.database.execute_sql("some query", [param1, param2])
If MerchantDetails
is a model, you could try:
dist = fn.haversine(
34.0160,
-118.4925,
MerchantDetails.lat,
MerchantDetails.long,
'MILES')
MerchantDetails.select(MerchantDetails, dist.alias('dist')).having(dist < 6000)
To get:
SELECT A.* , haversine('34.0160',' -118.4925', A.lat, A.long, 'MILES') AS dist
FROM merchant_details A
HAVING haversine('34.0160', '-118.4925', A.lat, A.long, 'MILES') <6000