通过Django中的forms类对前台的forms表单数据进行校验

1.前段form表单代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <form action="/login/" method="post">
        {% csrf_token %}
        <span>用户名</span><input type="text" name="user">
        <br>
        <span>邮箱</span><input type="text" name="email">
        <br>
        <span>密码</span><input type="text" name="password">
        <br>
        <input type="submit">
    </form>
</body>
</html>

2.后台数据Python代码对前端的form表单数据进行校验

from django.shortcuts import render, HttpResponse, redirect
from django import forms

# Create your views here.
class Login(forms.Form):
user = forms.CharField(min_length=6, error_messages={'required': '用户名不能为空', 'min_length': '用户名不能小于6位'})
email = forms.EmailField(error_messages={'required': '邮箱不能为空', 'invalid': '邮箱格式错误'})
  #此处未定义password,会导致下面的Login对象在接收前台数据时,只接收user数据和password数据

def login(request):
if request.method == 'GET':
return render(request, 'login.html')
else:
obj = Login(request.POST)
if obj.is_valid():#is_valid()用于判断obj对象是否校验通过,校验通过传回true
value_list = obj.clean()#clean()用于获取obj中已校验通过的数据
print(value_list)
#create(**value_list)#可直接将获取到的对象的值通过该方式插入到数据库中
else:
error_obj = obj.errors.as_json()#获取校验失败的信息
print(error_obj)
return redirect('/login')

猜你喜欢

转载自www.cnblogs.com/Goongo/p/9097396.html