Eu queria saber se havia uma maneira de pegar algo de uma caixa de texto no HTML, colocá-lo em um frasco e, em seguida, analisar esses dados com Python. Eu estava pensando que isso poderia envolver algum JS, mas posso estar errado. Alguma ideia?
Eu queria saber se havia uma maneira de pegar algo de uma caixa de texto no HTML, colocá-lo em um frasco e, em seguida, analisar esses dados com Python. Eu estava pensando que isso poderia envolver algum JS, mas posso estar errado. Alguma ideia?
Respostas:
A menos que você queira fazer algo mais complicado, alimentar dados de um formulário HTML no Flask é muito fácil.
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
Esta é a documentação do Flask sobre como acessar os dados da solicitação .
Se você precisa de formulários mais complicados que precisam de validação, você pode dar uma olhada em WTForms e como integrá-los ao Flask .
Nota: a menos que você tiver quaisquer outras restrições, você realmente não precisa ter o JavaScript em tudo para enviar seus dados (embora você pode usá-lo).
app.debug = True
pouco antes app.run()
para obter a exceção e o rastreamento do erro.
<input type="text" name="text">
por <textarea name="text"></textarea>
e você estará bem.
Declare um ponto de extremidade Flask para aceitar o tipo de entrada POST e execute as etapas necessárias. Use jQuery para postar os dados.
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
}
});
Toda interação entre o servidor (seu aplicativo Flask) e o cliente (navegador) por meio de solicitação e resposta. Quando o usuário clica no botão enviar em seu formulário, seu navegador envia a solicitação com este formulário para o seu servidor (aplicativo flask), e você pode obter o conteúdo do formulário como:
request.args.get('form_name')
Supondo que você já sabe como escrever uma visão em Flask
que responde a um url, criar um que lê o request.post
dados. Para adicionar a input box
esses dados de postagem, crie um formulário em sua página com a caixa de texto. Você pode então usar jquery
para fazer
var data = $('#<form-id>').serialize()
e, em seguida, poste em sua visualização de forma assíncrona usando algo como o abaixo.
$.post('<your view url>', function(data) {
$('.result').html(data);
});
Isso funcionou para mim.
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
}
});