# EDIT 2 проверьте этот ответ Здесь .
Я сообщаю здесь большую часть этого как справку:
- [
request.args
] [2]: пары ключ / значение в строке запроса URL - [
request.form
] [3]: пары ключ / значение в теле, из формы сообщения HTML или JavaScript запрос, который не JSON закодирован - [
request.files
] [4]: файлы в теле, которые Flask хранятся отдельно от form
. HTML формы должны использовать enctype=multipart/form-data
, иначе файлы не будут загружены. - [
request.values
] [5]: объединены args
и form
, предпочитая args
, если ключи перекрываются - [
request.json
] [6]: проанализированы данные JSON. Запрос должен иметь тип содержимого application/json
или использовать [request.get_json(force=True)
] [7], чтобы игнорировать тип содержимого.
Все это [MultiDict
] [8] экземпляров ( кроме json
). Вы можете получить доступ к значениям, используя:
request.form['name']
: используйте индексирование, если вы знаете, что ключ существует request.form.get('name')
: используйте get
, если ключ может не существовать request.form.getlist('name')
: используйте getlist
, если ключ отправляется несколько раз и вам нужен список значений. get
возвращает только первое значение.
Сначала было бы полезно, если бы вы также добавили код flask. При этом добавьте это к тегу input:
<form id='details'method="post">
<input class="myButton" name="details" id="mybutton" type="submit" value="Save"
onclick="getdata()">
</input>
</form>
Итак, в основном у вас было поле 'name = ""'.
Затем в файле python используйте это:
request.form['details']
Еще лучше, если вы сохраните значение в переменной (очевидно, это зависит от вас, это просто предложение)
request_detail = request.form['details']
Также в теге формы вы можете захотеть добавьте поле 'action = ""'. Это зависит от того, как декоратор маршрута в flask.
Пример, если у вас это:
@app.route('/details)
def details():
pass
Тогда ваша форма должна иметь это:
<form id='details'method="post" action="/details">
или
<form id='details'method="post" action="details">
EDIT
Попробуйте использовать обычный декоратор маршрута, чтобы узнать, исправляет ли он:
@app.route('/entry1', methods=['GET', 'POST'])
def new_data():
if request.method == 'POST':
details = request.form['details']
print(details)
return render_template('filename.html')
Если вы все еще хотите использовать add_url_rule, попробуйте следующее:
app.add_url_rule('/', 'entry1', view_func=new_data, methods=['GET', 'POST'] )