Flask HTTP блокирует post-запросы из приложения flutter

#flutter #flask #dart #post

#flutter #flask #dart #Публикация

Вопрос:

Я создаю серверную часть для своего приложения flutter и пытаюсь отправлять данные, но он продолжает отказывать в исходном коде Python (Flask):

 @app.route("/api/quotes/add/<username>", methods=["POST", "GET"])
def add_quote(username):
    data = request.json["create"]
    try:
        with open(pathes.USERS_DATA_PATH) as f:
            users_data = json.load(f)
            users_data["quotes"][data[f'{username}{users_data["quotes"].length}']
                                 ] = models.User().from_dict(data, username=username)
    except:
        return jsonify({"sc": 0, "data": "Failed to save the quote"})
    else:
        return jsonify({"sc": 2, data: None})


  

Почтовый код Flutter:

 postQuote(Map map) async {
  try {
    await http.post("http://10.0.2.2:5000/api/quotes/UserOne", body: {
      "create": convert.json.encode(map),
    });
  } catch (e) {
    return false;
  }
  return true;
}

  

Комментарии:

1. Какой код ошибки? Если ваше приложение flask использует плагин защиты flask CSRF и вы не передаете токен CSRF в своей функции post, запрос POST не будет выполнен.

2. Я еще не включил какую-либо защиту

3. Сообщений об ошибках нет, но 127.0.0.1 - - [13/Nov/2020 07:09:50] "POST /api/quotes/UserOne HTTP/1.1" 405 -

4. У вас опечатка в вашей функции flutter. Ваш маршрут flask — это /api/quotes/add/<имя пользователя> , но URL-адрес в функции postQuote — api/quotes/UserOne . Вы забыли добавить .