创建 Form 类时,最重要的部分是定义窗体的字段。每个字段都有自定义验证逻辑,以及其他一些挂钩。本文围绕可以在表单中使用的各种领域以及与Django表单相关的各种功能和技术。表单基本上用于以某种方式从用户那里获取输入,并将该信息用于数据库上的逻辑操作。例如,通过将输入作为用户的姓名,电子邮件,密码等来注册用户。
Django 将 Django 表单中定义的字段映射到 HTML 输入字段。Django处理表单中涉及的工作的三个不同部分:
- 准备和重组数据,使其准备好进行渲染
- 为数据创建 HTML 表单
- 接收和处理来自客户的提交表格和数据
请注意,Django表单完成的所有类型的工作都可以使用高级HTML内容来完成,但是Django使它变得更容易和高效,尤其是验证部分。一旦你掌握了Django表单,你就会忘记HTML表单。
语法: Django字段的工作方式类似于 Django 模型字段,并具有以下语法:
field_name = forms.FieldType(**options)
例:
from django import forms # 创建表单 class GeeksForm(forms.Form): title = forms.CharField() description = forms.CharField()
使用 Django 表格
要使用Django Forms,需要有一个项目和一个应用程序在其中工作。启动应用程序后,您可以在应用程序/表单中创建表单.py。在开始使用表单之前,让我们检查一下如何启动项目并实现Django表单。
创建一个 Django 表格
在Django中创建表单与创建模型完全相似,需要指定表单中存在哪些字段以及什么类型。例如,要输入,注册表单可能需要名字(字符字段),卷号(整数字段)等。
语法:
from django import forms class FormName(forms.Form): # 每个字段都将在 HTML 中映射为输入字段 field_name = forms.Field(**options)
要创建表单,请在极客/表单中.py输入代码,
# 从内置库导入标准 Django 表单 from django import forms # 创建表单 class InputForm(forms.Form): first_name = forms.CharField(max_length = 200) last_name = forms.CharField(max_length = 200) roll_number = forms.IntegerField( help_text = "Enter 6 digit roll number" ) password = forms.CharField(widget = forms.PasswordInput())
渲染 Django 表格
Django表单字段有几个内置的方法来简化开发人员的工作,但有时需要手动实现一些东西来自定义用户界面(UI)。表单附带了3个内置方法,可用于呈现Django表单字段。
- {{ form.as_table }} 将把它们呈现为包装在 标记中的表格单元格
- {{ form.as_p }} 将使它们包装在 标记中
- {{ form.as_ul }} 将使它们包装在
- 标记中
若要将此窗体呈现为视图,请转到 views.py 并创建home_view如下所示。
from django.shortcuts import render from .forms import InputForm # 在此处创建您的视图。 def home_view(request): context ={} context['form']= InputForm() return render(request, "home.html", context)
在视图中,只需创建上面在 forms.py 中创建的表单类的实例即可。现在,让我们>主页编辑模板.html
<form action = "" method = "post"> {% csrf_token %} {{form }} <input type="submit" value=Submit"> </form>
现在,请访问 http://localhost:8000/