Flask没有从curl发布接收参数

时间:2019-05-30 03:46:53

标签: python curl flask

尝试使用以下代码实现Flask API:

import tweepy,flask,os,flask_api,re,json,logging    
app = flask.Flask(__name__,template_folder='')
@app.route('/',methods=['POST'])
def answer():
    app.logger.info('server responding')
    for key,value in flask.request.args.items():
        app.logger.info(key+':'+value)
    return 'Server on line'

@app.route('/',methods=['GET'])
def home():
    return flask.render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True)#use_reloader=False
    logging.basicConfig(filename='error.log',level=logging.DEBUG)
    app.logger.info('Successfull info message')
    app.logger.error('Successfull error message')

当我尝试用窗户卷曲它时,

curl -X POST -d query=cheese http://127.0.0.1:5000/

(长格式)

curl --header "Content-Type: application/json"  --request POST  --data '{"query":"cheese"}'   http://127.0.0.1:5000/

我明白了

 INFO in logtest: server responding

但不会返回单个键/值对

1 个答案:

答案 0 :(得分:3)

flask.request.argsURL query parameters

curl --databody

您正在发送请求正文,但希望它们显示在URL参数中。这显然是行不通的。

您需要访问request.data。有一种方便的方法get_json(),可让Flask为您将主体解析为字典。