将数据从HTML表单发送到Flask中的Python脚本

我的Python脚本中有下面的代码:

def cmd_wui(argv, path_to_tx): """Run a web UI.""" from flask import Flask, flash, jsonify, render_template, request import webbrowser app = Flask(__name__) @app.route('/tx/index/') def index(): """Load start page where you select your project folder or load history projects from local DB.""" from txclib import get_version txc_version = get_version() prj = project.Project(path_to_tx) # Let's create a resource list from our config file res_list = [] prev_proj = '' for idx, res in enumerate(prj.get_resource_list()): hostname = prj.get_resource_host(res) username, password = prj.getset_host_credentials(hostname) return render_template('init.html', txc_version=txc_version, username=username) 

另外,我在init.html中有一个HTML表单:

 <form> <input type="text" id="projectFilepath" size="40" placeholder="Spot your project files"> <input type="button" id="spotButton" value="Spot"> </form> 

当用户点击我的python脚本中的variables“spotButton”时,如何从“projectFilepath”传递用户input?

我是Python和Flask的新手,如果我犯了错误,请原谅我。

form标签需要两个属性集:

  1. action :表单数据在提交时发送到的URL。 使用url_for生成它。 如果显示表单和处理数据的相同的URL句柄可以省略。
  2. method :是否提交数据作为查询string(GET)或表单数据(POST)。

添加一个视图来处理表单数据:

 @app.route('/handle_data', methods=['POST']) def handle_data(): projectpath = request.form['projectFilepath'] # your code # return a response 

将表单的action设置为该视图的URL:

 <form action="{{ url_for('handle_data') }}" method="post"> <input type="text" name="projectFilepath"> <input type="submit"> </form> 

你需要一个Flask视图来接收POST数据和一个HTML表单。

 from flask import request @app.route('/addRegion', methods=['POST']) def addRegion(): print(request.form['projectFilepath']) ... 
 <form action="{{ url_for('addRegion') }}" method="post"> Project file path: <input type="text" name="projectFilePath"><br> <input type="submit" value="Submit"> </form> 

我认为你做错了。

也就是说,您需要一个(nother)视图函数(索引是一个)来处理来自这个视图的input。 表单应发布到该视图。

详情请参阅此 。 你真的应该查阅文件。 我觉得写得很好,很清楚。