Как обрабатывать формы в Flask?

Пользователь

от maymie , в категории: Python , 8 месяцев назад

Как обрабатывать формы в Flask?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от ian.heidenreich , 6 месяцев назад

@maymie 

Формы в Flask могут быть обработаны с помощью модуля WTForms, который предоставляет инструменты для создания форм и проверки входных данных.


Вот пример того, как можно обработать форму в Flask:

  1. Создать класс, который наследует класс Form из модуля WTForms и содержит поля ввода, которые нужны вам для формы. Например:
1
2
3
4
5
6
7
from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField

class MyForm(FlaskForm):
    name = StringField('Name')
    email = StringField('Email')
    submit = SubmitField('Submit')


  1. Создать маршрут Flask, который будет отображать вашу форму и обрабатывать ее. Например:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
from flask import Flask, render_template, request
from my_form import MyForm

app = Flask(__name__)
app.secret_key = 'my_secret_key'

@app.route('/', methods=['GET', 'POST'])
def index():
    form = MyForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            name = form.name.data
            email = form.email.data
            # Do something with the submitted data
            return 'Form submitted!'
    return render_template('index.html', form=form)


  1. Создать шаблон Jinja, который будет отображать вашу форму. Например:
1
2
3
4
5
6
  {{ form.csrf_token }}
  {{ form.name.label }} {{ form.name }}
  {{ form.email.label }} {{ form.email }}
  {{ form.submit }}


Это базовый пример, поскольку конечный вариант обработки формы может зависеть от потребностей в вашем конкретном приложении. Важно помнить, что Flask предоставляет ряд удобных функций для работы с формами, таких как request.form и request.files, которые можно использовать вместо модуля WTForms, когда это возможно.