2016-12-14 2 views
0

私は単純にlocalhost/data /?user = [123,234,345]を渡すことができるような方法でFlaskを使いたいと思います。体。私は間違って何をやっている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.getListrequest.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/12月/ 2016年九時23分48秒]「GET /データユーザ123 = &ユーザ= 234 & user = 345 HTTP/

+0

argsはgetl​​ist関数のみを持つMultiDictオブジェクトです。 http://werkzeug.pocoo.org/docs/0.11/datastructures/#werkzeug.datastructures.MultiDict – LeonF

+0

@LeonFはい、getlist関数しかありません。しかし、getListを使用しても例外は発生しません。 Flaskの内部は、このメソッドが見つからないときには500個のエラーコードしか返さないと思います。 –

+0

@KaiWenそれは「完了」を返すようだが、私はリストを返す。私はリターンユーザを試しましたが、タイプエラー: 'リスト'オブジェクトが呼び出せませんでした。 –

関連する問題