如何使用 Django Forms 创建表单?

简介: 如何使用 Django Forms 创建表单?

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/** 111.png

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

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

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

目录
相关文章
|
18天前
|
Python
Django——forms组件
Django——forms组件
|
12天前
|
Python
Django表单
【6月更文挑战第13天】Django表单。
14 5
|
11天前
|
测试技术 数据库 Python
使用django构建表单测试
【6月更文挑战第14天】该文档介绍了如何对本地库进行自动化测试,特别是关注于代码结构和模型测试。作者鼓励为其他模型和表单创建类似的测试,并提及测试应避免对底层框架的重复验证。
53 0
使用django构建表单测试
|
21天前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
12 1
|
21天前
|
Python
Django表单
【6月更文挑战第3天】Django表单。
8 1
|
10月前
|
前端开发 中间件 数据安全/隐私保护
【Django】创建用户,中间件,表单组件
【Django】创建用户,中间件,表单组件
52 0
|
1月前
|
前端开发 开发者 Python
django表单
django表单
34 0
|
6月前
|
JSON 安全 数据库
在 Django 中呈现 HTML 表单(GET 和 POST)
在 Django 中呈现 HTML 表单(GET 和 POST)
49 0
|
11月前
|
Python
django 表单
django 表单
30 0
|
存储 前端开发 JavaScript
Django第4步_理解form表单类与处理html的post、get
Django第4步_理解form表单类与处理html的post、get
62 0