📅  最后修改于: 2020-12-31 00:40:14             🧑  作者: Mango
Django提供了一个Form类,用于创建HTML表单。它描述了表单以及表单的工作方式和外观。
它类似于通过使用模型创建表单的ModelForm类,但是它不需要模型。
表单类的每个字段都映射到HTML表单元素,并且每个字段本身都是一个类,它管理表单数据并在提交表单时执行验证。
让我们看一个示例,在该示例中我们也创建了一些字段。
from django import forms
class StudentForm(forms.Form):
firstname = forms.CharField(label="Enter first name",max_length=50)
lastname = forms.CharField(label="Enter last name", max_length = 100)
创建的StudentForm包含两个CharField类型的字段。 Charfield是一个类,用于创建表单中的HTML文本输入组件。
该标签用于设置组件的HTML标签,而max_length设置输入值的长度。
呈现时,它将向浏览器生成以下HTML。
注意:Django表单不包含
下表列出了常用字段及其详细信息。
Name | Class | HTML Input | Empty value |
---|---|---|---|
BooleanField | class BooleanField(**kwargs) | CheckboxInput | False |
CharField | class CharField(**kwargs) | TextInput | Whatever you’ve given as empty_value. |
ChoiceField | class ChoiceField(**kwargs) | Select | ” (an empty string) |
DateField | class DateField(**kwargs) | DateInput | None |
DateTimeField | class DateTimeField(**kwargs) | DateTimeInput | None |
DecimalField | class DecimalField(**kwargs) | NumberInput | None |
EmailField | class EmailField(**kwargs) | EmailInput | ” (an empty string) |
FileField | class FileField(**kwargs) | ClearableFileInput | None |
ImageField | class ImageField(**kwargs) | ClearableFileInput | None |
让我们看一个借助Django Form类创建HTML表单的完整示例。
假设我们要创建一个表单来获取学生信息,请使用以下代码。
from django import forms
class StudentForm(forms.Form):
firstname = forms.CharField(label="Enter first name",max_length=50)
lastname = forms.CharField(label="Enter last name", max_length = 100)
将此代码放入forms.py文件中。
现在,我们需要在views.py文件中实例化表单。参见下面的代码。
// views.py
from django.shortcuts import render
from myapp.form import StudentForm
def index(request):
student = StudentForm()
return render(request,"index.html",{'form':student})
将表单上下文传递给索引模板,如下所示:
// index.html
Index
在urls.py中提供URL
from django.contrib import admin
from django.urls import path
from myapp import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
]
运行Server并通过localhost:8000 / index在浏览器上访问该表单,它将产生以下输出。
尽管还有
标记中
注意:我们必须提供周围的环境要么
元素自己。