如何使用 Django Forms 创建表单?

78 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第30天,点击查看活动详情

Django 表单是一组高级 HTML 表单,可以使用 python 创建并以 Python 方式支持 HTML 表单的所有功能。这篇文章围绕如何使用各种表单字段和属性创建基本表单。在 Django 中创建表单与创建模型完全相似,需要指定表单中存在哪些字段以及类型。例如,要输入注册表单,可能需要名字 (CharField)、卷号 (IntegerField) 等。 

使用 Django 表单创建表单

使用示例说明Django 表单。考虑一个名为 geeksforgeeks 的项目,它有一个名为 geeks 的应用程序。 

在您的极客应用程序中创建一个名为 forms.py 的新文件,您将在其中制作所有表单。要创建 Django 表单,您需要使用Django Form Class。让我们演示一下。 

在你的 forms.py 中输入以下内容, 

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())

让我们解释一下到底发生了什么,左侧表示字段的名称,在右侧,您相应地定义了输入字段的各种功能。字段的语法表示为 

语法 : 

Field_name = forms.FieldType(attributes)

现在要将这个表单渲染到一个视图中,移动到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 中创建上面创建的表单类的一个实例。现在让我们编辑模板 > home.html 

<form action = "" method = "post">
	{% csrf_token %}
	{{form }}
	<input type="submit" value=Submit">
</form>

全部设置为检查表单是否正常工作让我们访问**http://localhost:8000/** 

创建-django-form

表单工作正常,但视觉效果令人失望,Django 提供了一些预定义的方式以方便的方式显示表单。在模板中,以下将修改输入为, 

  • {{ form.as_table }}会将它们呈现为包裹在 标签中的表格单元格
  • {{ form.as_p }}会将它们呈现在

    标签中

  • {{ form.as_ul }}会将它们呈现在
  • 标签中

也可以使用 {{ form.field_name }} 修改这些设置并根据需要显示字段,但是如果某些字段为空并因此需要特别小心,这可能会改变正常的验证过程。