Мне было интересно, есть ли способ взять что-то из текстового поля в HTML, передать это во флягу, а затем проанализировать эти данные с помощью Python. Я думал, что здесь может быть задействован JS, но я мог ошибаться. Любые идеи?
Мне было интересно, есть ли способ взять что-то из текстового поля в HTML, передать это во флягу, а затем проанализировать эти данные с помощью Python. Я думал, что здесь может быть задействован JS, но я мог ошибаться. Любые идеи?
Ответы:
Если вы не хотите делать что-то более сложное, загрузить данные из HTML-формы во Flask довольно просто.
my_form_post
).request.form
.templates/my-form.html
:
<form method="POST">
<input name="text">
<input type="submit">
</form>
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def my_form():
return render_template('my-form.html')
@app.route('/', methods=['POST'])
def my_form_post():
text = request.form['text']
processed_text = text.upper()
return processed_text
Это документация Flask о доступе к данным запроса .
Если вам нужны более сложные формы, требующие проверки, вы можете взглянуть на WTForms и как их интегрировать с Flask .
Примечание: если у вас есть какие - либо другие ограничения, вы действительно не нужно JavaScript на все , чтобы отправить данные (хотя вы можете использовать его).
app.debug = True
непосредственно перед, app.run()
чтобы получить исключение и трассировку ошибки.
<input type="text" name="text">
на, <textarea name="text"></textarea>
и все будет в порядке.
Объявите конечную точку Flask для приема типа ввода POST, а затем выполните необходимые шаги. Используйте jQuery для публикации данных.
from flask import request
@app.route('/parse_data', methods=['GET', 'POST'])
def parse_data(data):
if request.method == "POST":
#perform action here
var value = $('.textbox').val();
$.ajax({
type: 'POST',
url: "{{ url_for('parse_data') }}",
data: JSON.stringify(value),
contentType: 'application/json',
success: function(data){
// do something with the received data
}
});
Все взаимодействие между сервером (вашим флеш-приложением) и клиентом (браузером) происходит по запросу и по ответу. Когда пользователь нажимает кнопку отправки в вашей форме, его браузер отправляет запрос с этой формой на ваш сервер (приложение Flask), и вы можете получить содержимое формы, например:
request.args.get('form_name')
Предполагая , что вы уже знаете , как написать представление в Flask
который реагирует на URL, создать который считывает request.post
данные. Чтобы добавить input box
к этому сообщению данные, создайте на своей странице форму с текстовым полем. Затем вы можете использовать jquery
для
var data = $('#<form-id>').serialize()
а затем опубликуйте в своем представлении асинхронно, используя что-то вроде следующего.
$.post('<your view url>', function(data) {
$('.result').html(data);
});
Это сработало для меня.
def parse_data():
if request.method == "POST":
data = request.get_json()
print(data['answers'])
return render_template('output.html', data=data)
$.ajax({
type: 'POST',
url: "/parse_data",
data: JSON.stringify({values}),
contentType: "application/json;charset=utf-8",
dataType: "json",
success: function(data){
// do something with the received data
}
});