11 django form表单校验
1 编写form校验(form同model中字段命名一致)
from django import forms class UserForm(forms.Form): username = forms.CharField(min_length=4, max_length=11, required=True, error_messages={'required': '用户名不能为空'}) password = forms.CharField(min_length=4, max_length=50, required=True, error_messages={'required': '密码不能为空'})
2 view中采用form检验
import hashlib import json from django.core import serializers from django.http import JsonResponse # Create your views here. from django.views import View from user.models import User from utils.mytoken import make_token, login_check from user.form import UserForm class Login(View): def post(self, request): print('post login') body = json.loads(request.body) # 转字典 # form 校验 form = UserForm(body) if form.is_valid(): username = body['username'] password = body['password'] users = User.objects.filter(username=username) # 返回数组 if users.count() == 0: result = {'code': -1, 'msg': u'用户名或密码错误啦!'} return JsonResponse(result) user = users[0] m = hashlib.md5() m.update(password.encode()) # 密码比对 if m.hexdigest() != user.password: result = {'code': -1, 'msg': u'用户名或密码错误!'} return JsonResponse(result) # 生成 token token = make_token(username) # encode的作用是将unicode编码的字符串编码成二进制数据 # decode的作用是将二进制数据解码成unicode编码 result = {'code': 1, 'data': {'token': token}, 'msg': u'登录成功!'} return JsonResponse(result) else: print(form.errors) result = {'code': -1, 'msg': '参数错误'} return JsonResponse(result)
3 参考
https://blog.csdn.net/qq_34755081/article/details/82822405