【发布时间】:2014-01-08 03:44:56
【问题描述】:
我想在Flask-Peewee 上获取这个自定义查询
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
我尝试了以下代码,但没有成功,我得到“长”对象没有属性“fetchall”:
@app.route('/api/results/')
def results():
db = connect_db()
cur = db.execute("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 LIMIT 1")
entries = [dict(id=row[0], merchant_id=row[1], merchant_name=row[2], first_name=row[3]) for row in cur.fetchall()]
return repr(entries)
任何帮助将不胜感激。
已编辑>
这里是connect_db函数:
from torndb import Connection
LOCALHOST = "localhost"
DBNAME = "XXXX"
DBUSER = "XXXX"
DBPASSWORD = "XXXX"
#connect with DB
def connect_db():
db = Connection(LOCALHOST,DBNAME, user=DBUSER, password=DBPASSWORD)
return db
#close the connection from DB
def close_db(db):
db.close()
【问题讨论】:
-
什么是
connect_db?我在 Peewee 和 Flask-Peewee API 中都没有看到该函数,所以这一定是您定义的函数。我们不知道db是什么,所以我们无法明确告诉您为什么会收到该错误。 -
@MarkHildreth 抱歉,我刚刚编辑了问题,connect_db() 是我连接到 mysql 的第二个连接,但我认为您不需要更多信息来回答我的问题,您知道其他方法吗像上面的查询一样在 flask-peewee 中运行自定义查询?
标签: python mysql flask peewee flask-peewee