📅  最后修改于: 2023-12-03 15:00:27.442000             🧑  作者: Mango
Django 是一个流行的 Python Web 开发框架,其中的表单组件很常用。本文将介绍一些 Django 表单的示例,帮助 Python 开发者了解 Django 表单的使用方法。
from django import forms
class SimpleForm(forms.Form):
name = forms.CharField(max_length=50)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
上述代码定义了一个简单的表单类 SimpleForm
,包含了三个字段:name
、email
和 message
。其中 name
和 email
为文本输入框,而 message
则为多行文本框。
需要注意的是,表单中的每个字段都需要指定相应的验证规则,这里使用了 CharField()
和 EmailField()
来验证文本框中的输入。而 Textarea
则是一个多行文本框组件。
from django.shortcuts import render
from .forms import SimpleForm
def simple_view(request):
form = SimpleForm()
return render(request, 'simple_view.html', {'form': form})
在视图函数 simple_view
中,我们创建了表单实例 form
,并将其作为变量传递给了模板 simple_view.html
。在模板中,可以使用 Django 的表单渲染器来自动生成表单。
以下是模板 simple_view.html
的代码:
<!doctype html>
<html>
<head>
<title>Simple Form View</title>
</head>
<body>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
</body>
</html>
模板中主要的部分是通过 form.as_p
渲染表单,其中 csrf_token
用于防止跨站请求伪造攻击。在表单中引入 csrf_token
可以在表单提交时进行验证。
在处理表单数据时,可以在视图函数中对表单进行验证,通过使用 form.is_valid()
方法来判断是否表单验证通过。如果表单验证通过,则可以在表单中使用 form.cleaned_data
来获取验证后的数据。
以下是一个简单的示例:
def simple_view(request):
if request.method == 'POST':
form = SimpleForm(request.POST)
if form.is_valid():
name = form.cleaned_data['name']
email = form.cleaned_data['email']
message = form.cleaned_data['message']
# 处理表单数据...
return HttpResponse('Thanks for your message!')
else:
form = SimpleForm()
return render(request, 'simple_view.html', {'form': form})
在上述代码中,我们使用 request.POST
对表单进行初始化,然后使用 is_valid()
方法进行验证。如果验证通过,则可以通过 cleaned_data
获取表单中的数据。如果验证不通过,则可以使用 form.errors
获取错误信息。