Отправить данные из текстового поля в колбу?
Мне было интересно, есть ли способ взять что-то из текстового поля в HTML, передать его в колбу, а затем проанализировать эти данные с помощью Python. Я думал, что это может включать в себя некоторые JS, но я могу ошибаться. Есть идеи?
4 ответа:
если вы не хотите делать что-то более сложное, подача данных из HTML-формы в колбу довольно проста.
- создать представление, которое принимает запрос POST (
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
это колба документация о доступ к данным запроса.
Если вам нужны более сложные формы, которые нуждаются в проверке тогда вы можете взглянуть на WTForms и как интегрировать их с колбы.
Примечание: Если у вас нет никаких других ограничений, вам действительно не нужен JavaScript на всех для отправки ваших данных (хотя вы можете использовать его).
объявите конечную точку колбы, чтобы принять тип ввода 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) и клиентом (браузером) происходит по запросу и ответу. Когда пользователь нажимает кнопку "отправить" в своей форме, его браузер отправляет запрос с этой формой на ваш сервер (приложение 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); });