Similar presentations:
Django. Формы (часть 1). Урок №14
1.
УРОК №14Django
Формы
(часть 1)
2.
Ключевые темы• Django forms
• Использование форм
• Формы без привязки к модели
• Формы с привязкой к модели
3.
Django formsforms.py
views.py
template.html
4.
Django formsDjango предоставляет интерфейс для работы с формами, которые
позволяют определять функциональность форм в одном месте и
использовать многократно в разных местах, упрощают валидацию
данных, помогают связывать формы с моделями и многое другое.
Каждая форма определяется в виде отдельного класса, который
расширяет класс forms.Form. Классы размещаются внутри
приложения, где они используются, в отдельно создаваемом для
них файле forms.py.
5.
Синтаксис формКлассический синтаксис определения и использования форм похож
на модели в Django. Определение формы состоит из полей и их
аргументов, а также переопределения методов (опционально)
6.
Вывод форм7.
Field Types• CharField – ввод текста
• BooleanField – поле checkbox
• IntegerField – поле ввода целых чисел
• FloatField – поле ввода чисел с плавающей точкой
• SlugField – поле для текста, который условно называется «slug» это последовательность символов в нижнем регистре, чисел,
дефисов и знаков подчеркивания
• EmailField – поле для ввода адреса электронной почты
8.
Field TypesБолее подробная информация о полях формы:
https://docs.djangoproject.com/en/4.2/ref/forms/fields/
https://django.fun/ru/docs/django/4.1/ref/forms/fields/#built-in-field-classes
9.
Аргументы полей формField является Django-классом, который воплощает тип input-поля
из HTML. Создавая каждое поле в форме – мы создаём объект
класса Field. Каждое поле может принимать следующие
аргументы:
• required – определяет является ли поле обязательным к
заполнению.
• label – название input-поля формы. Фактически тэг <label>.
• initial – начальное значение, которое будет находится в inputполе.
10.
Аргументы полей форм• widget – определяет html-компонент, который будет изображён
на месте поля для ввода.
• help_text – текс-описание input-поля. Служит подсказкой для
пользователя при вводе данных.
• error_messages – переопределения сообщений об ошибке,
которые будут показывать в случае, когда данные некорректны.
• validators – список валидаторов для поля.
11.
Аргументы полей форм12.
Form widgetWidget – это объект, который отвечает за то, какой именно htmlэлемент формы будет отображён для конкретного поля Djangoформы.
HTML, создаваемый встроенными виджетами, использует
синтаксис HTML5, ориентированный на <!DOCTYPE html>.
Всякий раз, когда вы указываете поле в форме, Django будет
использовать виджет по умолчанию, соответствующий типу
отображаемых данных.
13.
Form widgetTextInput
PasswordInput
Select
EmailInput
Textarea
CheckboxInput
Более подробная информация о виджетах:
https://docs.djangoproject.com/en/4.2/ref/forms/widgets/
https://django.fun/ru/docs/django/4.1/ref/forms/widgets/
14.
Отображение формДля пар <label>/<input> существуют следующие варианты вывода:
• {{ form.as_div }} будет отображать их обернутыми в теги <div>.
• {{ form.as_table }} будет отображать их как ячейки таблицы,
обернутые в теги <tr>. (требуется заранее обернуть всё в тег
<table>)
• {{ form.as_p }} будет отображать их обернутыми в теги <p>.
• {{ form.as_ul }} будет отображать их обернутыми в теги <li>
(требуется заранее обернуть всё в тег <ul>)
15.
Приём данных с форм16.
Виды формФормы
Не связаны с
моделями
Связаны с
моделями
Создаются без привязки к
моделям и ни на какие
данные не ссылаются
Создаются и ссылаются на
существующую модель и её
поля