Python 3 Flask Rest Api: "request.get_ json ()" дает TypeError: объект 'NoneType' не может быть подписан - PullRequest
0 голосов
/ 24 марта 2020

Я создаю маршрут в python flask, который будет использоваться как остальные API для регистрации пользователя. когда я пытаюсь получить json данные, переданные через почтальона в методе POST, я получаю ошибку TypeError: объект 'NoneType' не может быть подписан

мой запрос от почтальона: http://127.0.0.1: 5000 / регистрация необработанный ввод: {"имя пользователя": "alok", "пароль": "1234"}

мой маршрут и функция:

@app.route('/register', methods=['GET', 'POST'])
def signup_user():
    data = request.get_json()
    return data['username']

Насколько мне известно, функция должна возвращать: " alok "

, но я получаю ошибку: TypeError: объект 'NoneType' не является подписным

Любая помощь будет оценена

1 Ответ

0 голосов
/ 24 марта 2020

Я потратил несколько часов на inte rnet Я получил ответ с flask официального сайта

Я не установил mimetype при выполнении запроса. Если mimetype не указывает JSON (application / json, см. Is_ json ()), возвращается None. request.get_ json () используется для анализа данных как JSON. фактический синтаксис get_json(force=False, silent=False, cache=True)

Параметры force - игнорировать mimetype и всегда пытаться анализировать JSON. silent - Ошибка синтаксического анализа и возврат None. кеш - сохранить проанализированный JSON для возврата при последующих вызовах.

Итак, в конце концов я изменил свой код на

@app.route('/register', methods=['GET', 'POST'])
def signup_user():
    data = request.get_json(force=True)
    return data['username']

Он разрешен.

...