1. 程式人生 > >Django中建立使用者並與資料庫中驗證是否存在此使用者

Django中建立使用者並與資料庫中驗證是否存在此使用者

首先建立一個註冊使用者的程式:

  def register(request):
  #校驗請求方式,進入不同的處理函式
    if request.method == 'GET':
   		return render(request,'index.html',)
	elif request.method == 'POST':
    '''獲取前端頁面的資料'''
        print('進入')
        user_name = request.POST.get('username')
        password = request.POST.get('password')
        cpassword = request.POST.get('cpassword')
        emai = request.POST.get('email')
        #判斷資料是否為空
        if not all([user_name, password, cpassword, emai]):
            return render(request, 'index.html')
        #判斷郵箱是否規範
        if not re.match(r'^([a-zA-Z0-9_-])
[email protected]
([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$', emai): return render(request, 'index.html',{'errmsg':'郵箱不符合規範'}) #判斷是否重複操作 #判斷郵箱: try: user_email = UserInfo.objects.filter(email__exact = emai ) print(user_email) except Exception as e: user_email = None if user_email: return render(request, 'index.html', {'errmsg': '郵箱已經被使用'}) #判斷使用者名稱 try: user = UserInfo.objects.get(username = user_name) except Exception as e: user = None if user: return render(request, 'index.html', {'errmsg': '使用者名稱已經被使用'}) #建立一個使用者物件 user = UserInfo.objects.create_user(username=user_name, email=emai, password=password) #create_user 自帶檢查是否重複 # create_user(self, username, email=None, password=None, #講啟用標誌設定為0 user.is_active = 0 user.save() print('提交成功') return render(request, 'index.html')

第二步,進行資料庫的校驗:

class RegisterView(View):
	def get(self,request):
    	return render(request, 'index.html')

	def post(self,request):
	#獲取使用者輸入的資訊
        user_name = request.POST.get('username')
        password = request.POST.get('password')
        cpassword = request.POST.get('cpassword')
        email = request.POST.get('email')
        '''判斷資料是否為空'''
        if not all([user_name, password, cpassword, email]):
            return render(request, 'index.html')

        if not re.match(r'^([a-zA-Z0-9_-])
[email protected]
([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$', email): return render(request, 'index.html', {'errmsg': '郵箱不符合規範'}) try: user = UserInfo.objects.filter(email__exact=email) (UserInfo是資料庫裡面存放使用者資訊的一張表,filter是模糊查詢,去匹配資料庫裡面的資訊) except Exception as e: user = None if user: return render(request, 'index.html', {'errmsg': '郵箱已經被使用'}) '''判斷使用者名稱''' try: usern = UserInfo.objects.get(username=user_name) except Exception as e: usern = None if usern: return render(request, 'index.html', {'errmsg': '使用者名稱已經被使用'}) '''建立一個使用者物件''' user = UserInfo.objects.create_user(username=user_name, password=password, email=email) # create_user(self, username, email=None, password=None, '''將啟用標誌設定為0''' user.is_active = 0 user.save() print('提交成功')