首页 > 其他 > 详细

11 django form表单校验

时间:2021-05-29 09:00:08      阅读:21      评论:0      收藏:0      [点我收藏+]

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

 

11 django form表单校验

原文:https://www.cnblogs.com/lizitestdev/p/14824027.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!