{{ form.as_table }} – отображать формы Django в виде таблицы.
На арене веб-разработки Django зарекомендовал себя как известная интернет-инфраструктура Python высокого уровня с открытым исходным кодом, которая способствует быстрому улучшению и простому, прагматичному дизайну. Django может похвастаться надежной формой работы с устройствами, которая позволяет разработчикам легко создавать, проверять и обрабатывать документы. Одним из важных компонентов формы Django, связанной с устройствами, является ее способность отображать формы в виде таблиц HTML.
В этом посте мы рассмотрим процедуру рендеринга форм Django в виде таблиц, которые включают в себя преимущества, способы их достижения и несколько исключительных практик, которые следует соблюдать. К концу этого поста вы получите исчерпывающую информацию о том, как оптимизировать метод веб-разработки за счет эффективного отображения форм Django в виде таблиц.
Зачем отображать формы Django в виде таблицы?
Преобразование форм Django в виде таблиц может предоставить веб-разработчикам ряд преимуществ. Некоторые из этих преимуществ включают в себя:
Структурированный макет. Отображение форм-факторов в таблице обеспечивает плавный и подготовленный макет, облегчая клиентам восприятие формы и взаимодействие с ней.
Адаптивный макет: при правильном CSS таблицы могут легко адаптироваться к специальным размерам экранов и устройствам, гарантируя, что постоянный пользователь будет пользоваться несколькими системами.
-
Улучшение удобства обслуживания: отображая формы в виде таблиц, программисты могут уменьшить объем вспомогательного кода HTML и CSS, который они хотят записать, что в конечном итоге упрощает хранение и обновление форм.
Доступность. Использование таблиц для отображения форм может повысить доступность для клиентов с ограниченными возможностями, поскольку программы чтения с экрана могут лучше интерпретировать форму и взаимосвязь между форм-факторами.
Как визуализировать формы Django в виде таблицы
Теперь, когда мы понимаем преимущества рендеринга форм Django в виде таблиц, давайте рассмотрим шаги, необходимые для достижения этой цели.
Пакеты, которые необходимо установить
Установите Django: откройте терминал и введите следующую команду, чтобы установить Django.
pip install django
Создайте новый проект Django. Продолжая работать в терминале, введите следующую команду, чтобы создать новый проект Django:
django−admin startproject myproject
Перейдите в каталог вашего проекта
cd myproject
Создайте новое приложение Django.
python manage.py startapp myapp
Создайте новый файл form.py в каталоге Myapp.
Для начала нам нужно создать форму Django. Это будет достигнуто путем описания класса формы в файле form.py, полученном из django.forms.ModelForm или django.forms.Form.
Импортируйте основные модули: формы из пакета django и модель User из файла models.py текущего приложения.
Создайте класс формы с именем UserForm, который наследуется от form.ModelForm.
-
Внутри класса UserForm создайте вложенный мета-класс.
Установите атрибут модели мета-класса на модель пользователя. Это сообщает Django, что форма будет использоваться для создания или редактирования экземпляров пользователей.
Создайте список имен полей в пределах качества поля мета-класса. Это поля, которые будут включены в форму.
from django import forms
from .models import User
class UserForm(forms.ModelForm):
class Meta:
model = User
fields = ['first_name', 'last_name', 'roll_no', 'password']
Обновите view.py в каталоге Myapp.
Код импортирует UserForm из форм и использует его в функции user_form_view, которая отображает форму в form.html.
from django.shortcuts import render
from .forms import UserForm
def user_form_view(request):
form = UserForm()
return render(request, 'form.html', {'form': form})
Создайте новый каталог templates в каталоге myapp и создайте новый файл form.html в каталоге templates.
Далее мы собираемся использовать встроенный метод Django для отображения форм в виде таблиц — метод as_table. В вашем шаблоне вы вызовете метод as_table для появления формы, как показано ниже:
Создайте компонент фрейма HTML со свойством Method="POST", чтобы указать, что фрейм будет использовать стратегию POST при отправке данных.
Используйте тег формата {% csrf_token %}, чтобы включить в форму токен CSRF, что позволяет защититься от атак с имитацией межсайтовых запросов.
Создайте элемент таблицы HTML.
Внутри элемента таблицы используйте тег шаблона {{ form.as_table }}, чтобы отобразить форму Django в виде таблицы. Это создаст жизненно важный HTML-код для каждого поля формы, при этом каждое поле будет отображаться в отдельной строке таблицы.
Добавьте компонент ввода HTML с атрибутом type="submit", чтобы сформировать кнопку отправки для формы.
<form method="POST">
{% csrf_token %}
<table class="form-table" style="width: 100%;">
{{ form.as_table }}
</table>
<input type="submit" value="Submit">
</form>
Обновите urls.py в каталоге myapp.
Этот фрагмент кода создает маршрутизацию URL-адресов для приложения Django myapp. Он определяет путь к представлению пользовательской формы по базовому URL-адресу.
from django.urls import path
from .views import user_form_view
urlpatterns = [
path('', user_form_view, name='user_form'),
]
Обновите urls.py в каталоге Myproject.
Этот код настраивает основные конфигурации URL-адресов для проекта Django myproject. Он включает в себя конфигурации URL-адресов как для сайта администратора, так и для приложения myapp.
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
Запустить сервер
python manage.py runserver
Теперь, если вы перейдете по адресу http://127.0.0.1:8000/ в своем веб-браузере, вы должны увидеть свою форму. Это «выходные данные» вашего приложения Django.
Выход
Мы сделали это! Наша форма Django была успешно отображена в виде таблицы. Вот окончательная форма регистрации пользователя, элегантно отображающая четыре поля.
Веб-приложение в Django состоит из нескольких взаимосвязанных частей, и невозможно объединить его в один автономный скрипт Python, который можно запустить для вывода в консоли.
Лучшие практики рендеринга форм Django в виде таблицы
Чтобы обеспечить наилучшее взаимодействие с пользователем и удобство обслуживания, следуйте этим рекомендациям при отображении форм Django в виде таблиц:
Используйте семантическую разметку: используйте компоненты таблицы фитингов, такие как thehead, tbody и tfoot, чтобы обеспечить лучшую настройку и доступность прогресса.
Добавляйте имена и заполнители. Обязательно включите имена для каждого поля формы, а также заполнители, чтобы направлять пользователей в процессе заполнения формы.
Примените адаптивный план: убедитесь, что ваша таблица адаптивна, используя медиа-запросы CSS или структуру CSS, например Bootstrap, которая предоставляет адаптивные классы таблиц.
Внедрите защиту CSRF: защитите свои формы от атак подделки межсайтовых запросов (CSRF), включив тег шаблона {% csrf_token %} в элемент формы. Django автоматически обеспечивает защиту CSRF при использовании этого тега.
Заключение
Рендеринг форм Django в виде таблиц дает различные преимущества, включая организованный формат, адаптивный дизайн, повышенную удобство обслуживания и повышенную доступность. Выполнив действия, описанные в этой статье, и следуя лучшим практикам, вы будете хорошо подготовлены к созданию оптимизированных, удобных для пользователя и жизнеспособных веб-приложений с использованием Django.
Продолжая создавать свои возможности Django, не забывайте оставаться в курсе самых последних лучших практик, инструментов и процедур, чтобы гарантировать постоянную эффективность, безопасность и удобство ваших проектов.