将数据从文本框发送到Flask?
我想知道是否有办法从HTML中的文本框中取出一些东西,把它放入瓶中,然后用Pythonparsing这些数据。 我想这可能涉及一些JS,但我可能是错的。 有任何想法吗?
除非你想做更复杂的事情,否则从HTML表单提供数据到Flask是很容易的。
- 创build一个接受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
这是关于访问请求数据的Flask文档。
如果你需要更复杂的表单需要validation,那么你可以看看WTForms,以及如何将它们与Flask集成 。
注意:除非有其他限制,否则根本不需要JavaScript来发送数据(虽然可以使用它)。
声明Flask端点以接受POSTinputtypes,然后执行必要的步骤。 使用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
中编写一个响应url 的视图 ,请创build一个读取request.post
数据的视图 。 要将input box
添加到此post数据中,请使用文本框在页面上创build一个表单。 然后你可以使用jquery
来做
var data = $('#<form-id>').serialize()
然后使用类似下面的内容asynchronous发布到您的视图。
$.post('<your view url>', function(data) { $('.result').html(data); });
服务器(你的烧瓶应用程序)和客户端(浏览器)之间的所有交互按请求和响应进行。 当用户点击button在你的表单中提交他的浏览器发送请求与这种forms到您的服务器(flask应用程序),你可以得到如下forms的内容:
request.args.get('form_name')