我想對Flask-Peewee如何在Flask中獲取自定義SELECT查詢?
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)
任何幫助將非常感激。
EDITED>
這裏是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,但我不認爲你需要更多的信息來回答我的問題,你知道任何其他方式來運行自定義查詢在瓶 - peewee喜歡上面的查詢? –