Лучший способ освоить Django — использовать его для разработки полнофункциональных приложений. Вы столкнетесь со многими интересными функциями, когда будете работать с фреймворком. Один из них — как рендерить формы в шаблонах с помощью четких форм.
Использование django-crispy-forms — один из многих способов рендеринга форм в Django. Зависимость позволяет создавать формы в шаблонах без написания HTML-кода. Вы можете легко создавать повторно используемые макеты без хлопот с написанием кода формы.
Вы можете узнать больше, установив библиотеку, затем настроив ее и используя для создания регистрационной формы.
Как работает django-crispy-forms
библиотека django-crispy-forms поставляется со встроенным HTML-кодом, который вы можете настроить в соответствии с вашими потребностями. Он включает в себя фильтр с именем |хрустящий который отображает формы на основе div в шаблоне.
{% хрустящие%} tags будет отображать формы в соответствии с определенными настройками setup.django-crispy-forms хорошо работает с другими зависимостями шаблонов, такими как Bootstrap и Tailwind CSS.
Давайте посмотрим, как это работает в шаблоне.
Установить хрустящие формы
Начать с создание проекта Джанго и приложение. Затем установите последнюю версию django-crispy-forms с помощью Pipenv с помощью следующей команды:
пипенв установить Джанго-хрустящие формы
Успешная установка будет выглядеть как на картинке ниже:
Настройте django-crispy-forms в настройках
После установки необходимо прописать хрустящие формы как зависимость в настройках проекта. После регистрации библиотека хрустящих форм будет доступна для всех приложений в проекте.
В проекте settings.py файл, добавьте строку 'crispy_forms':
УСТАНОВЛЕННЫЕ_ПРИЛОЖЕНИЯ = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'мое приложение',
'хрустящие_формы',
]
Создать форму
Вам необходимо синхронизировать свою регистрационную форму со встроенной формой создания пользователя Django, чтобы упростить аутентификацию.
встроенный Аутентификация пользователя Джанго система обрабатывает общие требования, такие как проверка паролей и выдача разрешений.
Система также обрабатывает проверку формы для вас. Таким образом, вы можете создавать формы без хлопот с проверкой самостоятельно. Если вы выполняли проверку формы в других фреймворках, вы знаете, насколько громоздкой она может быть. Не с Джанго.
Модуль аутентификации имеет Пользователь модель или предмет. Пользователь Объект является основным компонентом системы аутентификации пользователей. Он обрабатывает разрешения, аутентификацию профилей зарегистрированных пользователей, контроль доступа и многое другое.
Форма создания пользователя использует встроенный Пользователь объект для регистрации новых пользователей. Он наследуется от класса ModelForm.
Сначала импортируйте формы из модуля форм Django. Затем импортируйте Форма создания пользователя от django.contrib.auth.forms. Кроме того, импортируйте встроенный Пользователь модель из django.contrib.auth.models. Затем импортируйте входные данные поля из django ModelForm.
от Джанго Импортировать формы
отДжанго.contrib.auth.формыИмпортироватьФорма создания пользователя
отДжанго.contrib.auth.моделиИмпортироватьПользователь
от django.forms Импортировать ModelForm, TextInput, EmailInput, ImageField, Textarea
Затем создайте объект регистрации с именем РегистрацияПользователяФорма. Это занимает Форма создания пользователя как аргумент. Добавить Пользователь поля объекта, такие как аутентификация по электронной почте, имя пользователя и два пароля.
сортРегистрацияПользователяФорма(форма создания пользователя):
электронная почта = формы. EmailField (max_length=254, help_text='Необходимый. Введите действительный адрес электронной почты.')
сортМета:
модель = Пользователь
поля = ('имя пользователя', 'электронная почта', 'пароль1', 'пароль2')
Эти поля являются основными атрибутами пользователя в регистрационной форме. Это обязательные входные данные, которые пользователи должны заполнить, чтобы система аутентифицировала их.
Создайте функцию просмотра
Далее вы создадите функцию просмотра для регистрационной формы. Во-первых, импортируйте функцию рендеринга, а также РегистрацияПользователяФорма из формы.py. Затем импортируйте Пользователь модель из django.contrib.auth.models.
Функция просмотра с именем register принимает РегистрацияПользователяФорма. Он отобразит его на register.html шаблон.
от django.shortcuts Импортировать оказывать,
от django.http Импортировать HTTP-ответ, HTTP404
от .формы Импортировать РегистрацияПользователяФорма
отДжанго.contrib.auth.моделиИмпортироватьПользователь
дефрегистр(запрос):
form=RegisterUserForm
контекст={'форма':форма}
вернуть рендер (запрос,'register.html',контекст)
Создать URL-путь
Создать URL-адрес для register.html шаблон. Этот URL-адрес является путем к только что созданной функции просмотра. Дайте ему имя регистр, поэтому вы можете использовать это имя для вызова его в шаблоне.
от django.urls Импортировать путь
от. Импортировать Просмотры
URL-шаблоны=[
путь ('регистр', views.register, имя ='регистр'),
]
Загрузить в шаблон
Теперь, когда у вас есть представление и URL-адрес, вы можете создать register.html шаблон в папке приложения. Вы будете использовать django-crispy-forms для рендеринга Форма регистрации пользователя.
в register.html шаблон, расширить base.html. base.html содержит Загрузочные ссылки вы будете использовать для оформления регистрационной формы. Затем загрузите django-crispy-forms с помощью register.html, используя теги шаблона.
{% расширяется 'base.html' %}
{% загрузить crispy_forms_tags %}
{% заблокировать содержимое %}
<раздел класс ="контейнер" стиль="">
<раздел класс ="ряд">
<раздел класс ="col-md-2"></div>
<раздел класс ="col-md-8">
<раздел класс ="карта" стиль="черный цвет;">
<раздел класс ="карточное тело">
<h5 класс="название карты"><а>Зарегистрируйтесь, чтобы стать участником</ а><стиль промежутка ="поплавок: справа">Вы член? <ссылка ="#" класс="основной текст">Войти сейчас</ а></span></h5>
<раздел класс ="карточный текст">
<действие формы ="" метод="ПОЧТА" новалидировать>
{% csrf_token%}
{{ форма|хрустящая}}
<тип кнопки="представлять на рассмотрение" класс="бтн бтн-первичный бтн-см"> регистр</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% конечный блок%}
Форма включает в себя csrf_token, который защищает процесс регистрации от хакеров. Отобразите форму с тем же именем переменной, что и в функции просмотра. Затем добавьте |хрустящий отфильтровать Django {{форма}} переменная. Это сделает форму хрустящей.
Запустите сервер. Затем проверьте приложение в браузере по адресу http://127.0.0.1:8000/register. Вы должны увидеть форму, показанную ниже:
Вы сделали регистрационную форму, используя хрустящие формы! Обратите внимание, что Django автоматически добавил проверку в форму. К ним относятся такие требования, как права доступа к имени пользователя и паролю.
Чтобы иметь полную систему регистрации, добавьте логику аутентификации в функцию просмотра. Вы также можете добавить страницу входа для входа зарегистрированных пользователей. Пользователи должны выполнить требования аутентификации, чтобы войти в приложение.
Библиотека django-crispy-forms позволяет быстро и легко отображать проверенные формы. Проверка данных гарантирует, что вы получите точные данные от ваших пользователей.
Данные пригодятся при общении с пользователями и анализе показателей производительности.
Зачем использовать django-crispy-forms?
Использование библиотеки хрустящих форм для рендеринга форм в Django — отличный пример применения принципа DRY. django-crispy-forms создает повторно используемые компоненты, которые вы можете отображать в шаблонах.
Они поставляются со встроенным HTML-кодом. Код избавит вас от необходимости структурировать и проверять формы. Хрустящие формы предоставляют тег и фильтр, которые отображают формы в формате div. Они также предоставляют возможность настраивать отображаемый HTML и управлять им.
django-crispy-forms хорошо работает с системой аутентификации Django. Вы можете создать систему аутентификации для проверки ваших пользователей без написания большого количества кода.