2016-12-14 14 views
0

我想以這種方式使用Flask,只需傳遞use localhost/data /?user = [123,234,345],它將返回這些值身體。使用Flask獲取int列表並返回這些值作爲端點

這是我已經試過:

import redis 
r = redis.StrictRedis(host='localhost', port=6379, db=0) 
@app.route('/data', methods=['GET','POST']) 
def data(): 
    user = request.args.getList('user', type=int) 
    users = [] 

    for u in user: 
     try: 
      users.append(redisfunction(u)) 
     except: 
      continue 

    return users 

我在做什麼錯?

回答

2
  1. request.args.getList應該是request.args.getlist,L的小寫,否則會導致錯誤代碼500,究其原因,我找不到現在
  2. 你應該訪問localhost/data?user=123&user=234&user=345

這裏是我的simpe代碼:

from flask import Flask, request 

app = Flask(__name__) 

@app.route('/data', methods=['GET', 'POST']) 
def data(): 
    user = request.args.getlist('user', type=int) 
    print user 
    return 'done' 

app.run() 

然後curl 'localhost:5000/data?user=123&user=234&user=345'

燒瓶輸出

[123,234,345]

127.0.0.1 - - [14/DEC/2016 9時23分48秒]「GET /數據用戶= 123 &用戶= 234 & user = 345 HTTP/

+0

args是MultiDict對象,它只有getlist函數。 http://werkzeug.pocoo.org/docs/0.11/datastructures/#werkzeug.datastructures.MultiDict – LeonF

+0

@LeonF是的,它只有getlist函數。但使用getList不會導致異常。我想也許Flask的內部只是在沒有找到這個方法時拋出500錯誤代碼。 –

+0

@KaiWen它似乎只返回'完成',但我想返回列表。我試圖返回用戶,但它給我一個錯誤'TypeError:'列表'對象不可調用' –