创建表单类
首先,在你的应用程序中的 forms.py 文件中创建一个表单类,该类继承自 forms.Form:
# forms.py
from django import forms
class MyForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
age = forms.IntegerField()
is_subscribed = forms.BooleanField(required=False)
在这个例子中,我们定义了一个名为 MyForm 的表单类,包含了四个字段:name(字符串类型)、email(电子邮件类型)、age(整数类型)和 is_subscribed(布尔类型)。
在视图中使用表单
在视图函数中,你可以使用这个表单类来处理用户提交的数据:
# views.py
from django.shortcuts import render
from .forms import MyForm
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 处理表单数据
name = form.cleaned_data['name']
email = form.cleaned_data['email']
age = form.cleaned_data['age']
is_subscribed = form.cleaned_data['is_subscribed']
# 进一步处理...
else:
form = MyForm()
return render(request, 'my_template.html', {'form': form})
在这个例子中,如果用户提交了表单数据,我们将使用 MyForm(request.POST) 实例化表单对象,并使用 form.is_valid() 来验证表单数据是否有效。如果有效,可以使用 form.cleaned_data 获取清理过的数据。
在模板中渲染表单
在模板中,可以使用表单对象的方法来渲染 HTML 表单:
<!-- my_template.html -->
<form method="post" action="{% url 'my_view' %}">
{% csrf_token %}
{{ form.as_p }}
<input type="submit" value="Submit">
</form>
在这个例子中,{{ form.as_p }} 将表单渲染成 HTML 表单的段落形式。
表单验证和错误处理
Django Form 提供了丰富的验证器和错误处理机制。在表单类中,你可以添加字段级别的验证器、表单级别的验证器,以及使用内置的验证器。错误信息可以通过 form.errors 和 form.non_field_errors 获取,并在模板中渲染。
这只是 Django Form 的入门介绍。Django Form 提供了很多高级特性,包括自定义小部件、自定义字段、ModelForm 等。深入了解 Django Form 可以让你更好地构建和处理 Web 表单。
转载请注明出处:http://www.zyzy.cn/article/detail/13920/Django