2
import config
from flask import Flask, jsonify, request
## app and db is defined on model.py
from model import db, app, PLAY_STORE
@app.route('/app-api', methods=['GET'])
def listapp():
if request.method == 'GET':
store=request.args.get('store')
category=request.args.get('category')
results = PLAY_STORE.query.filter_by(Store=store,Category=category).all()
json_results = []
for result in results:
d = {'rank': result.Rank,
'store': result.Store,
'category': result.Category,
'type': result.Type,
'title': result.Title}
json_results.append(d)
return jsonify(items=json_results)
if __name__ == '__main__':
app.run(debug=True)
我想在使用燒瓶的mysql數據庫上構建一個休息api。 在上面的程序中,我試圖從url中獲取商店和類別。即使我使用request.args.get
,Store值爲空,即json_results爲空。如果我的硬代碼製作PLAY_STORE.query.filter_by(Store="Play Store")
我正在獲得預期的輸出。但是,當我輸入127.0.0.1/app-api?store="Play Store"
時,json_results爲空。使用燒瓶從url獲取多個參數
我還有一個問題。如何在filter_by中放置多個條件,如PLAY_STORE.query.filter_by(Store="Play Store" and Category="Games")
。
首先,你不應該在網址中放置空格。大多數時候使用'%20'而不是空格(stackoverflow使用'''',正如你所看到的那樣)。所以試試127.0.0.1/app-api?store="Play%20Store「 – fr1tz
'filter_by'接受'** kwargs'。因此,您可以逗號分隔鍵值對,例如'PLAY_STORE.query.filter_by(Store =「Play Store」,Category =「Games」)'。請避免在變量名中使用大寫字母,並閱讀[pep8](http://legacy.python.org/dev/peps/pep-0008/) – msvalkon
謝謝!! PLAY_STORE.query.filter_by(Store =「Play Store',Category =「games」)正在工作 – user3446000