¡# Incoming!
Hoy vamos a aprender a manejar datos de formularios en Flask.
👉 Para empezar, ya he añadido el código HTML de ayer para mi formulario en main.py. (¡De nada!) ¡Ve a echarle un vistazo!
##
👉 Sin embargo, de momento, la @app.route() no tiene ningún método asociado, así que necesito crear una ruta para que esta página reciba los datos.
En primer lugar, necesito un nuevo import: request.
Luego creo el @app.route - también necesito añadir un argumento extra para especificar los métodos que se reciben. Por el momento, es sólo ‘post’, pero tiene que ser ALL CAPS - POST.
Finalmente defino la subrutina process() que devuelve request.form.
👉 Aquí está el nuevo código solo:
from Flask import Flask, request
@app.route('/process', methods=["POST"])
def process():
return request.form
👉 Y aquí está como parte del código completo:
from flask import Flask, request
app = Flask(__name__)
@app.route("/process", methods=["POST"])
def process():
return request.form
@app.route('/')
def index():
page = """<form method = "post" action="/process">
<p>Name: <input type="text" name="username" required> </p>
<p>Email: <input type="Email" name="email"> </p>
<p>Website: <input type="url" name="website"> </p>
<p>Age: <input type="number" name="age"> </p>
<input type="hidden" name="userID" value="232"> </p>
<p>
Fave Baldy:
<select name="baldies">
<option>David</option>
<option>Jean Luc Picard</option>
<option>Yul Brynner</option>
</select>
</p>
<button type="submit">Save Data</button>
</form>
"""
return page
app.run(host='0.0.0.0', port=81)
This will get us the data from the form in a dictionary format, like this:
##
👉 Ahora puedo empezar a añadir a la subrutina process() y usar sentencias if para decidir qué vamos a decir dependiendo de los datos recibidos. Esto es lo que he hecho en el siguiente ejemplo:
página en blanco, y otra llamada formulario y asignarle los datos entrantes del formulario.page += significa añadir a la página.else para aquellos que eligieron…. imprudentemente.def process():
page = ""
form = request.form
if form["baldies"] == "david":
page += f"You're alright {form['username']}"
else:
page += f"You've picked wrong {form['username']}"
return page
Ve y coge el código de tu formulario de acceso de ayer.
Conéctalo a Flask.
Haz que funcione.
Debería haber:
Ejemplo:

