python之--學習模型類view,註冊類
阿新 • • 發佈:2018-12-12
首先要用到包from
from django.views.generic import View #模型類
views.py內容
# 使用者註冊類 class RegisterView(View): '''註冊''' def get(self, request): '''顯示註冊頁面''' return render(request, 'register.html') def post(self, request): '''進行註冊處理''' # 接收資料 username = request.POST.get('user_name') password = request.POST.get('pwd') email = request.POST.get('email') allow = request.POST.get('allow') # 進行資料校驗 if not all([username, password, email]): # 資料不完整 return render(request, 'register.html', {'errmsg': '資料不完整'}) # 校驗郵箱 if not re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email): return render(request, 'register.html', {'errmsg': '郵箱格式不正確'}) if allow != 'on': return render(request, 'register.html', {'errmsg': '請同意協議'}) # 校驗使用者名稱是否重複 try: user = User.objects.get(username=username) except User.DoesNotExist: # 使用者名稱不存在 user = None if user: # 使用者名稱已存在 return render(request, 'register.html', {'errmsg': '使用者名稱已存在'}) # 進行業務處理: 進行使用者註冊 user = User.objects.create_user(username, email, password) user.is_active = 0 user.save() # 傳送啟用郵件,包含啟用連結: http://127.0.0.1:8000/user/active/3 # 啟用連結中需要包含使用者的身份資訊, 並且要把身份資訊進行加密 # 加密使用者的身份資訊,生成啟用token serializer = Serializer(settings.SECRET_KEY, 3600) info = {'confirm': user.id} # info = {'confirm':1} token = serializer.dumps(info) # bytes token = token.decode() # 發郵件 send_register_active_email.delay(email, username, token) # , html_message = html_message # 返回應答, 跳轉到首頁 return redirect(reverse('goods:index'))
myapp.urls.py
# url(r'^register$', views.register, name='register'), # 註冊 # url(r'^register_handle$', views.register_handle, name='register_handle'), # 註冊處理 url(r'^register$', RegisterView.as_view(), name='register'), # 註冊 url(r'^active/(?P<token>.*)$', ActiveView.as_view(), name='active'), # 使用者啟用 url(r'^login$', LoginView.as_view(), name='login'), # 登入
和上面註冊的函式用法一樣,類名加上as_view(),可以替代單個函式