将数据从文本框发送到Flask?

oll*_*ien 79 python flask

我想知道是否有办法从HTML中的文本框中取出某些东西,将其输入烧瓶,然后用Python解析该数据.我以为这可能涉及一些JS,但我可能是错的.有任何想法吗?

pac*_*cha 124

除非你想做一些更复杂的事情,否则从HTML表单向Flask提供数据非常容易.

  • 创建一个接受POST请求的视图(my_form_post).
  • 访问字典中的表单元素request.form.

templates/my-form.html:

<form method="POST">
    <input name="text">
    <input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)

这是有关访问请求数据的Flask文档.

如果您需要更复杂的表单需要验证,那么您可以查看WTForms以及如何将它们与Flask集成.

注意:除非你有其他任何限制,你并不真正需要的JavaScript 在所有发送数据(虽然你可以使用它).


Kra*_*mar 10

声明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
Run Code Online (Sandbox Code Playgroud)
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
  }
});
Run Code Online (Sandbox Code Playgroud)