#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 . Вы забыли добавить .