0Pricing
Flask Academy · Lección

Defina una clase FlaskForm

Declare campos y validadores en Python.

Defina una clase FlaskForm es una lección gratuita de Flask Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Flask Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Flask Academy incluye 4 lecciones en total.

Por qué Flask-WTF

Gestionar los datos sin procesar de un formulario manualmente se vuelve complicado enseguida. Flask-WTF le permite declarar un formulario una sola vez como clase de Python y reutilizarlo en cualquier lugar. 🎯

Instalar la extensión

Flask-WTF integra la biblioteca WTForms y añade protección contra CSRF. Instálela con pip antes de escribir un solo campo.

pip install Flask-WTF

Heredar de FlaskForm

Cada formulario que cree es una clase que hereda de FlaskForm. Esa clase base le proporciona CSRF y validación automáticamente.

from flask_wtf import FlaskForm

class LoginForm(FlaskForm):
    pass

Añadir el primer campo

Los campos son atributos de clase establecidos como objetos de campo. Un StringField se muestra como una entrada de texto y almacena lo que escriba el usuario.

from wtforms import StringField

class LoginForm(FlaskForm):
    username = StringField('Username')

Tipos de campo habituales

WTForms incluye muchos tipos de campo. Utilice PasswordField, BooleanField o SelectField para que cada entrada se corresponda con los datos que espera.

from wtforms import PasswordField, BooleanField

password = PasswordField('Password')
remember = BooleanField('Remember me')

Asignar una etiqueta a los campos

El primer argumento de un campo es su label. Ese texto es el que muestra la plantilla junto a la entrada, así que debe ser claro para las personas.

email = StringField('Email address')

Añadir validadores

Pase una lista de validators para aplicar reglas. DataRequired rechaza un envío vacío antes de que se ejecute la vista.

from wtforms.validators import DataRequired

username = StringField('Username', validators=[DataRequired()])

Combinar varias reglas

Los validadores se ejecutan en orden, por lo que puede combinar varios. Exija un valor y compruebe después su longitud, todo en el mismo campo.

from wtforms.validators import DataRequired, Length

name = StringField('Name', validators=[DataRequired(), Length(min=2, max=40)])

Añadir un botón de envío

Un SubmitField se convierte en el botón del formulario. Incluirlo en la clase mantiene toda la definición del formulario en un único lugar ordenado.

from wtforms import SubmitField

submit = SubmitField('Log in')

Una clase de formulario completa

Una las piezas y tendrá una form class reutilizable y con validación propia, lista para instanciarla en cualquier vista.

class LoginForm(FlaskForm):
    username = StringField('Username', validators=[DataRequired()])
    password = PasswordField('Password', validators=[DataRequired()])
    submit = SubmitField('Log in')

Instanciar en una vista

Dentro de una vista, solo tiene que crear una instancia. El form object lleva los campos, los datos y los errores de esa solicitud.

@app.route('/login')
def login():
    form = LoginForm()
    return render_template('login.html', form=form)

Comprobación rápida

¿De qué clase base deben heredar sus formularios de Flask-WTF?

Resumen

Ha definido un formulario como clase: ha heredado de FlaskForm, ha añadido campos tipados con etiquetas y validadores, y ha terminado con un botón de envío. Reutilizable y ordenado. ✨

Preguntas frecuentes

¿La lección «Defina una clase FlaskForm» es gratis?

Sí — el texto completo de «Defina una clase FlaskForm» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Flask Academy, actualiza a CoddyKit PRO. El curso de Flask Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Defina una clase FlaskForm»?

Declare campos y validadores en Python. Practicas Flask Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Flask Academy?

No se requiere experiencia previa. Flask Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Defina una clase FlaskForm»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Flask Academy?

Sí. Cada lección de Flask Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Defina una clase FlaskForm
  2. Renderice y envíe un formulario
  3. validate_on_submit y tokens CSRF
  4. Validadores personalizados y errores de campo
← Volver a Flask Academy