{{ form.as_table }} – 将 Django 表单渲染为表格
在 Web 开发领域,Django 已成为一个著名的开源高级 Python Web 框架,它鼓励快速开发和简单实用的设计。Django 拥有强大的处理工具模型,允许开发人员轻松创建、验证和处理文档。Django 处理工具模型的一个重要组成部分是它能够将表单渲染为 HTML 表格。
在本文中,我们将介绍将 Django 表单渲染为表格的过程,包括好处、如何实现这一点以及一些值得遵循的特殊做法。读完这篇文章后,您将获得有关如何通过有效地将 Django 表单渲染为表格来简化 Web 开发方法的大量信息。
为什么将 Django 表单渲染为表格?
将 Django 表单渲染为表格可以为 Web 开发人员带来一系列好处。这些优势包括:
结构化布局:在表格中显示表单元素可提供流畅且准备好的布局,使用户更容易理解和与表单交互。
响应式布局:使用正确的 CSS,表格可以轻松适应不同的屏幕尺寸和设备,确保普通用户享受多种系统。
可维护性提高:通过将表单呈现为表格,程序员可以减少需要编写的手动 HTML 和 CSS 代码量,从而最终更轻松地维护和更新表单。
可访问性:使用表格呈现表单可以提高残障用户的可访问性,因为屏幕阅读器可以更好地解释表单元素的形状和关系。
如何将 Django 表单呈现为表格
现在我们了解了呈现 Django 表单的好处作为表格,让我们探索实现此目标所涉及的步骤。
要安装的软件包
安装 Django:打开终端并输入以下命令来安装 Django
pip install django
创建一个新的 Django 项目:仍然在您的终端中,输入以下命令来创建一个新的 Django 项目:
django−admin startproject myproject
导航到您的项目目录
cd myproject
创建一个新的 Django 应用程序
python manage.py startapp myapp
在 Myapp 目录中创建一个新文件 forms.py
首先,我们必须创建一个 Django 表单。这将通过在 forms.py 文件中定义一个表单类来实现,从 django.forms.ModelForm 或 django.forms.Form 获取。
导入基本模块:来自 django 包的 forms 和来自当前应用程序的 models.py 文件的 User 模型。
创建一个名为 UserForm 的表单类,该类继承自 forms.ModelForm。
在 UserForm 类中,创建一个嵌套的 Meta 类。
将 Meta 类的 model 属性设置为 User 模型。这告诉 Django 该表单将用于创建或编辑 User 实例。
在 Meta 类的字段 quality 内创建字段名称列表。这些是将包含在表单中的字段。
from django import forms from .models import User class UserForm(forms.ModelForm): class Meta: model = User fields = ['first_name', 'last_name', 'roll_no', 'password']
更新 Myapp 目录中的 views.py
代码从 forms 导入 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})
在 myapp 目录中创建一个新目录 templates,并在 templates 目录中创建一个新文件 form.html
接下来,我们将利用 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>
更新 myapp 目录中的 urls.py
此代码片段正在为 Django 应用程序 myapp 创建 URL 路由。它在基本 URL 处为用户表单视图定义路径。
from django.urls import path from .views import user_form_view urlpatterns = [ path('', user_form_view, name='user_form'), ]
更新 Myproject 目录中的 urls.py
此代码正在为 Django 项目 myproject 设置主要 URL 配置。它包括管理站点和 myapp 应用程序的 URL 配置。
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
现在,如果您在 Web 浏览器中导航到 http://127.0.0.1:8000/,您应该会看到您的表单。这是您的 Django 应用程序的"输出"。
输出
我们完成了!我们的 Django 表单已成功呈现为表格。这是最终的用户注册表单,优雅地显示了四个字段。

Django 中的 Web 应用程序由多个相互连接的部分组成,无法将其压缩为单个独立的 Python 脚本,您可以在控制台中运行该脚本以输出结果。
将 Django 表单渲染为表格的最佳实践
为确保最佳的用户体验和可维护性,在将 Django 表单渲染为表格时,请遵循以下最佳实践:
使用语义标记:使用合适的表格组件(例如 thead、tbody 和 tfoot)来提供更好的布局和进度可访问性。
添加名称和占位符:务必为每个表单添加名称表单字段以及占位符,引导用户完成表单填写过程。
应用响应式设计:通过使用 CSS 媒体查询或提供响应式表格类的 CSS 框架(如 Bootstrap),确保您的表格具有响应性。
实施 CSRF 保护:通过在表单元素中包含 {% csrf_token %} 模板标记,保护您的表单免受跨站点请求伪造 (CSRF) 攻击。使用此标记时,Django 将自动处理 CSRF 保护。
结论
将 Django 表单呈现为表格具有多种好处,包括组织格式、响应式设计、高级可维护性和可用性。通过采取本文概述的步骤并遵循最佳实践,您将能够使用 Django 创建简化、用户友好且可行的 Web 应用程序。
在继续开发 Django 技能时,请记住随时了解最新的最佳实践、工具和程序,以确保您的项目始终有效、安全且用户友好。