Колба не получает аргументы из сообщения curl - PullRequest
1 голос
/ 30 мая 2019

Попытка реализовать 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 Ответ

3 голосов
/ 30 мая 2019

flask.request.args являются параметрами запроса URL .

curl --data - это тело .

Вы отправляете тело запроса, но ожидаете, что они появятся в параметрах URL.Который, очевидно, не будет работать.

Вам необходимо получить доступ к request.data .Существует удобный метод get_json () , который можно использовать, чтобы Flask анализировал тело в словарь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...