我的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脚本中的变量上点击“spotButton”时,如何传递“projectFilepath”中的用户输入?
我在Python和Flask中是新的,所以如果我犯了错误,请原谅我。
解决方法
你也是html的新手。 html中的表单标签需要设置两个属性
>动作 – 单击提交时,应在哪里发送数据。这是一个网址
>方法 – 请求或发送请求。
您的示例中的index方法称为flask(和其他mvc框架)中的视图。它只能处理GET请求。
以下代码可处理您的表单数据
@app.route('/url_which_handles_form_data/',methods=['POST']) def handle_data(): projectpath = request.form.projectFilePath #your code <form action="localhost/url_which_handles_form_data" method="Post"> your code </form>