Paso 1: Instalar Flask-WTF
Para usar Flask-WTF, primero debes instalarlo en tu entorno virtual. Puedes hacerlo con pip:
pip install Flask-WTF
Paso 2: Crear un Formulario
forms.py
:
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField
from wtforms.validators import DataRequired
class MiFormulario(FlaskForm):
nombre = StringField('Nombre', validators=[DataRequired()])
enviar = SubmitField('Enviar')
Hemos definido un formulario MiFormulario
con un campo de texto (StringField
) llamado «nombre» y un botón de enviar (SubmitField
). Hemos aplicado una validación DataRequired()
al campo «nombre» para asegurarnos de que no esté vacío.
Paso 3: Usar el Formulario en una Ruta
En tu archivo principal de Flask (app.py
), importa el formulario y úsalo en una ruta:
app.py
from flask import Flask, render_template, redirect, url_for
from forms import MiFormulario
app = Flask(__name__)
app.config['SECRET_KEY'] = 'mi_clave_secreta' # Clave secreta para proteger formularios
@app.route('/', methods=['GET', 'POST'])
def index():
formulario = MiFormulario()
if formulario.validate_on_submit():
nombre = formulario.nombre.data
return f'Hola, {nombre}'
return render_template('index.html', formulario=formulario)
if __name__ == '__main__':
app.run()
En este ejemplo, hemos importado MiFormulario
desde forms.py
y lo hemos utilizado en la ruta '/'
. La función validate_on_submit()
se utiliza para validar el formulario cuando se envía. Si el formulario es válido, se recoge el nombre ingresado y se muestra un saludo.
Paso 4: Crear una Plantilla HTML para el Formulario
Crea una plantilla HTML para renderizar el formulario. Por ejemplo, crea un archivo index.html
en el directorio templates
:
index.html
<!DOCTYPE html>
<html>
<head>
<title>Formulario</title>
</head>
<body>
<h1>Formulario</h1>
<form method="POST" action="/">
{{ formulario.hidden_tag() }}
<div>
{{ formulario.nombre.label }}
{{ formulario.nombre(size=32) }}
</div>
<div>
{{ formulario.enviar() }}
</div>
</form>
</body>
</html>
En esta plantilla, hemos utilizado las variables {{ formulario.hidden_tag() }}
, {{ formulario.nombre.label }}
, y {{ formulario.nombre(size=32) }}
para renderizar los campos del formulario y el botón de enviar.
Paso 5: Ejecutar la Aplicación
Ejecuta tu aplicación Flask y visita http://localhost:5000/
. Deberías ver el formulario y poder enviar datos. Flask-WTF se encargará de la validación del formulario y mostrará mensajes de error si es necesario.
Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?