17.django新增檢查使用者名稱和手機號數量介面+vue檢查使用者名稱,手機號是否重複

Daniels.發表於2020-10-07

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方法程式碼無需更改,前端程式碼邏輯在components\common\lab_header.vue
  • 只需要修改components\axios_api\http.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
          }
        })
      }
    },

相關文章