sessions formularios form example con python html forms input flask

python - formularios - request.form flask



Enviar datos del formulario HTML a un script de Python en Flask (2)

Tengo el siguiente código en mi script de 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)

Además, tengo un formulario HTML en init.html:

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

¿Cómo puedo pasar la entrada del usuario desde "projectFilepath" cuando un usuario hace clic en "spotButton" en una variable en mi script python?

Soy nuevo en Python y Flask, así que perdónenme si cometo algún error.


La etiqueta del form necesita dos atributos establecidos:

  1. action : la URL a la que se envían los datos del formulario al enviar. url_for con url_for . Se puede omitir si la misma URL maneja mostrando el formulario y procesando los datos.
  2. method : si enviar los datos como una cadena de consulta (GET) o datos de formulario (POST).

Agregue una vista para manejar los datos del formulario:

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

Establezca la action del formulario en la URL de esa vista:

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


Necesita una vista de Frasco que recibirá datos POST y un formulario HTML que lo enviará.

from flask import request @app.route(''/addRegion'', methods=[''POST'']) def addRegion(): return (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>