Поиск по сайту:

{{ 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, не забывайте оставаться в курсе самых последних лучших практик, инструментов и процедур, чтобы гарантировать постоянную эффективность, безопасность и удобство ваших проектов.

Статьи по данной тематике: