Django 表单验证
Django提供了内置的方法以自动验证表单数据。Django表单只会提交包含CSRF令牌的表单。它使用了一种简洁易懂的方法来验证数据。
is_valid() 方法用于对表单的每个字段进行验证,它在Django表单类中定义。如果数据有效,它将返回True,并将所有数据放入cleaned_data属性中。
让我们看一个输入用户输入并验证输入的示例。
Django验证示例
此示例包含以下文件和代码。
// models.py
from django.db import models
class Employee(models.Model):
eid = models.CharField(max_length=20)
ename = models.CharField(max_length=100)
econtact = models.CharField(max_length=15)
class Meta:
db_table = "employee"
现在,创建一个包含以下代码的表单。
// forms.py
from django import forms
from myapp.models import Employee
class EmployeeForm(forms.ModelForm):
class Meta:
model = Employee
fields = "__all__"
实例化表单
实例化表单,检查请求是否为POST。它使用 is_valid() 方法验证数据。
//views.py
def emp(request):
if request.method == "POST":
form = EmployeeForm(request.POST)
if form.is_valid():
try:
return redirect('/')
except:
pass
else:
form = EmployeeForm()
return render(request,'index.html',{'form':form})
显示表单和错误的索引模板。
// index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Index</title>
</head>
<body>
<form method="POST" class="post-form" enctype="multipart/form-data">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
</body>
</html>
启动服务器并访问表单。
它对每个字段进行验证,如果验证失败就会抛出错误。