18910140161

将数据从HTML表单发送到Flask中的Python脚本-堆栈溢出

顺晟科技

2022-10-18 14:08:16

37

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

<代码>DEF CMD_Wui(ARGV,路径_到_TX):“ ” “运行Web用户界面。” “ ”从Flask导入Flask,Flash,Jsonify,渲染_模板,请求导入WebBrowserAPP=烧瓶(__名称__)@app.route('/tx/index/')定义索引():“ ” "加载起始页,您可以在其中选择项目文件夹或从本地数据库加载历史项目。“ ” "从txclib导入获取_版本TXC_版本=获取_版本()PRJ=项目.项目(_到_TX的路径)#让我们从配置文件中创建一个资源列表RES_列表=[]上一个_项目=' '对于idx,res in enumerate(prj.get_资源_list()):hostname=prj.get_资源_主机(res)username,password=prj.getset_主机_凭据(主机名)return呈现_模板(' init.HTML ',TXC_版本=TXC_版本,username=用户名)

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

<代码><;表单>;<;INPUT TYPE=“ text ” ID=“ ProjectFilePath ” SIZE=“ 40 ” PLACEHOLDER=“定位项目文件”>;<;input type=“ button ” ID=“ spotButton ” value=“ spot ”>;<;/窗体>;
当用户在我的Python脚本中的变量上单击“ SpotButton ”时,

如何从“ ProjectFilePath ”传递用户输入?

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


顺晟科技:

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) 标记需要设置一些属性:

  1. <form> <input type="text" id="projectFilepath" size="40" placeholder="Spot your project files"> <input type="button" id="spotButton" value="Spot"> </form> :提交时表单数据发送到的URL.用form生成它。如果相同的URL处理显示表单和处理数据,则可以省略它。
  2. action:使用POST方法将数据作为表单数据提交。如果未给定或显式设置为url_for,则使用GET方法在查询字符串(method="post")中提交数据。
  3. get:当表单包含文件输入时,必须设置此编码,否则文件将无法上传,Flask也无法看到它们。

request.args标记需要enctype="multipart/form-data"参数。

添加一个视图来处理提交的数据,该视图位于input中,与输入的enctype="multipart/form-data"在同一个键下。任何文件输入都将位于request.form中。

name
使用request.files将表单的@app.route('/handle_data', methods=['POST']) def handle_data(): projectpath = request.form['projectFilepath'] # your code # return a response

设置为该视图的URL:

<代码><;表单操作=";{{URL_('处理_数据')}}";方法=";后";>;<;输入类型=";文本";名称=";项目文件路径";>;<;输入类型=";提交";>;<;/窗体>;

您需要一个接收POST数据的Flask视图和一个发送数据的HTMLaction

来自烧瓶导入请求的
<代码>@app.route('/addRegion ',methods=[' post '])定义AddRegion():...return(request.form['项目文件路径'])
<代码><;表单操作=";{{(' addRegion ')的URL_}}";方法=";后";>;项目文件路径:<;输入类型=";文本";name=";ProjectFilePath";>;<;BR>;<;输入类型=";提交";值=";提交";>;<;/窗体>;
  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航