zoukankan      html  css  js  c++  java
  • 17.django添加检查用户名和手机号数量接口+vue检查用户名,手机号是否重复

    1.django添加检查用户名和手机号数量接口

    1.1 在user/urls.py中添加

    urlpatterns = [
        path('count/', views.RegCountView.as_view()),  # 查询用户名手机号使用量的视图,  /user/count/
    ]
    

    1.2 在user/views.py中添加视图函数

    # 查询用户数量接口
    class RegCountView(APIView):
        # 注册时需要验证的用户名和手机号是否使用
    
        # 自定义权限类
        permission_classes = (AllowAny,)
    
        def post(self, request):
            # 接收参数:  验证的内容type: username/phone,  data: '用户名' 或者 '手机号',
            datatype = request.data.get('type')
            data = request.data.get('data')
            if not all([data, datatype]):
                return Response({'code': 999, 'msg': '参数不完整'})
            if datatype == 'username':
                count = User.objects.filter(username=data).count()
            if datatype == 'phone':
                count = User.objects.filter(phone=data).count()
    
            return Response({'code': 0, 'msg': '查询成功', 'data': {'type': datatype, 'count': count}})
    

    2.测试接口

    2.1测试接口URL

    http://192.168.56.100:8888/user/count/
    

    2.2演示结果

    在这里插入图片描述

    3.vue检查用户名,手机号是否重复

    3.1vue检查用户名是否重复

    • 前端函数如下,js方法代码无需更改,前端代码逻辑在componentscommonlab_header.vue
    • 只需要修改componentsaxios_apihttp.js中调用的后端地址
    // axios.defaults.baseURL = "http://127.0.0.1:8000/"
    axios.defaults.baseURL = "http://192.168.56.100:8888/"
    
    • vue函数
        // 检查用户名 是否使用
        check_username() {
          console.log('判断用户名')
          console.log(this.username == '')
          var reg = new RegExp(/^[a-zA-Z0-9_-]{3,16}$/); //字符串正则表达式 4到14位(字母,数字,下划线,减号)
          if (this.username == '') {
            this.username_message = '用户名不能为空'
            this.username_error = true
            return false
          }
          if (!reg.test(this.username)) {
            this.username_message = '用户名格式不正确'
            this.username_error = true
            return false
          } else {
            // 去后端检查用户名使用数量
            user_count({ type: 'username', data: this.username }).then((res) => {
              console.log(res)
              if (res.data.count > 0) {
                this.username_message = '用户名已存在'
                this.username_error = true
              } else {
                this.username_message = ''
                this.username_error = false
              }
            })
          }
        },
    

    3.2vue检查手机号是否重复

        // 检查手机号是否使用
        check_phone() {
          console.log('检查手机号')
          var reg = new RegExp(/^[1]([3-9])[0-9]{9}$/)
          if (this.phone == '') {
            this.phone_message = '手机号不能为空'
            this.phone_error = true
          }
    
          if (!reg.test(this.phone)) {
            this.phone_message = '手机号格式不正确'
            this.phone_error = true
            return false
          } else {
            // 去后端查用户数量
            user_count({ type: 'phone', data: this.phone }).then((res) => {
              console.log(res)
              if (res.data.count > 0) {
                this.phone_message = '手机号已存在'
                this.phone_error = true
              } else {
                this.phone_message = ''
                this.phone_error = false
              }
            })
          }
        },
    
  • 相关阅读:
    SDC是如何炼成的?Exception篇
    数字IC后端时钟树综合专题(OCC电路案例一)
    DDR接口时序实例
    SDC是如何炼成的?IO约束篇
    10个免费的响应式jQuery Carousel 轮播图插件
    为Web程序员准备的10个最棒的jQuery视频插件
    10种优化页面加载速度的方法
    人人必知的10个 jQuery 小技巧
    css3 旋转 过渡 实例
    css3 学习
  • 原文地址:https://www.cnblogs.com/mbitions/p/13780207.html
Copyright © 2011-2022 走看看