def post(self, request): '''注册处理''' username = request.POST.get('user_name') password = request.POST.get('pwd') email = request.POST.get('email') try: User.objects.get(username=username) except User.DoesNotExist: user = User.objects.create_user(username, email, password) user.is_active = 0 user.save() # 加密用户信息 serializer = TimedJSONWebSignatureSerializer( settings.SECRET_KEY, 3600) info = {'confirm': user.id} token = serializer.dumps(info) token = token.decode('utf8') # 发送激活邮件 send_register_active_mail.delay(email, username, token) return redirect(reverse('goods:index')) else: return render(request, 'register.html', {'errmsg': '用户已存在'})
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') # 进行数据校验 # 1.校验注册信息是否完整 if not all([username, password, email, allow]): return render(request, 'user/register.html', {'errmsg': '请将注册信息填写完整'}) # 2.校验邮箱格式是否合法 if not re.match(r'^[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email): return render(request, 'user/register.html', {'errmsg': '邮箱格式不正确'}) # 3.校验是否同意协议 if allow != 'on': return render(request, 'user/register.html', {'errmsg': '请同意注册协议'}) # 检验用户名是否重复 try: user = User.objects.get(username=username) except User.DoesNotExist: user = None else: return HttpResponse('此用户名已经注册过') # 进行业务处理:进行用户注册 user = User.objects.create_user(username, email, password) user.is_active = 0 user.save() # 加密用户的身份信息,生成激活token serializer = Serializer(settings.SECRET_KEY, 3600) info = {'confirm': user.id} token = serializer.dumps(info) token = token.decode() # 发送邮件 send_register_active_mail.delay(email, username, token) # 返回响应 return redirect(reverse('apps.goods:index'))
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, allow]): 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_obj = User.objects.get(username=username) except User.DoesNotExist: user_obj = None if user_obj: return render(request, 'register.html', {'errmsg': '用户已存在'}) # 业务处理 # 存入数据库 user = User.objects.create_user(username, email, password) user.is_active = 0 user.save() # 加密身份信息: serializer = Serialzer('secret_key', 3600) info = {'confirm': user.id} token = serializer.dumps(info).decode('utf-8') # 发送激活邮件 send_register_active_mail.delay(email, username, token) # 返回响应 return redirect(reverse('goods:index'))
def post(self, request): username = request.POST.get('user_name') password = request.POST.get('pwd') password2 = request.POST.get('cpwd') 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': '请同意协议'}) if password2 != password: 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() serialzer = Serializer(settings.SECRET_KEY, 3600) info = {'confirm': user.id} token = serialzer.dumps(info) token = token.decode('utf-8') send_register_active_mail.delay(email, username, token) # subject = '天天新鲜欢迎信息' # message = '' # sender = settings.EMAIL_FROM # receiver = [email] # html_message = '''<h1>{},欢迎您成为天天新鲜注册会员</h1>请点击下面链接激活您的账户<br/> # <a href="http://127.0.0.1:8000/user/active/{}">http://127.0.0.1:8000/user/active/{}</a>'''.format(username,token,token) # send_mail(subject,message,sender,receiver,html_message=html_message) return redirect(reverse('goods:index'))
def post(self, request): """处理注册表单数据""" # 1. 接受数据 username = request.POST.get('user_name') password = request.POST.get('pwd') email = request.POST.get('email') check_box = request.POST.get('allow') # 2. 验证数据 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 check_box != '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': '用户名已被使用'}) # 3. 处理业务数据: 进行注册 user = User.objects.create_user(username, email, password) user.is_active = 0 user.save() # 邮箱激活, 并加密信息 serializer = Serializer(settings.SECRET_KEY, 3600) info = {'confirm': user.id} token = serializer.dumps(info) token = token.decode() # 发送邮件 send_register_active_mail.delay(email, username, token) # 4. 返回结果 return redirect(reverse('goods:index'))
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', {'error': '数据不完整!'}) if allow != 'on': return render(request, 'register.html', {'error': '请勾选同意!'}) # 检查用户名是否存在 try: user = User.objects.get(username=username) except User.DoesNotExist: user = None if user: render(request, 'register.html', {'error': '用户名已存在'}) user = User.objects.create_user(username=username, password=password, email=email, is_active=0) user.save() # 认证 serializer = Serializer(settings.SECRET_KEY, 3600) info = {'confirm': user.id} token = serializer.dumps(info) token = token.decode() # html_message = '欢迎%s,请点击<a href ="http://127.0.0.1:8000/user/activate/%s">http://127.0.0.1:8000/user/activate/%s</a>激活' % ( # username, token, token) # send_mail('激活邮件', '', settings.EMAIL_FROM, [ # email], html_message=html_message) send_register_active_mail.delay(email, username, token) return redirect('/')
def post(self, request): """进行注册""" # return render(request, '404.html') username = request.POST.get('username') password = request.POST.get('password') email = request.POST.get('email') allow = request.POST.get('allow') if not all( [ username, password, email ] ): return render(request, 'register.html', { 'errmsg': '请检查你的信息填写情况!', 'username_errmsg': '用户名不能为空!', 'password_errmsg': '密码不能为空!', 'email_errmsg': '邮箱不能为空', 'allow_errmsg': '必须认可我们的用户协议!', 'color_username': '******', 'color_password': '******', 'color_email': 'red', 'color_allow': 'red' }) if not re.match('[a-z0-9][\w.\-]*@[a-z0-9\-]+(\.[a-z]{2,5}){1,2}$', email): return render(request, 'register.html', { 'email_errmsg': '邮箱格式不对', 'color_email': True }) if allow != 'on': return render(request, 'register.html', { 'allow_errmsg': '必须认可我们的用户协议!', 'color_allow': 'red' }) if len(username) > 21 or len(username) < 5: return render(request, 'register.html', { 'username_errmsg': '用户名长度必须在6~20个字符之间', 'color_username': True }) if len(password) > 21 or len(password) < 5: return render(request, 'register.html', { 'password_errmsg': '密码长度必须在6~20个字符之间', 'color_password': True }) try: user = User.objects.get(username=username) except User.DoesNotExist: user = None if user: return render(request, 'register.html', {'errmsg': '用户名已存在'}) user_register = User.objects.create_user(username, email, password) user_register.is_active = 0 user_register.save() ser = Serializer(settings.SECRET_KEY, 300) info = { 'confirm': user_register.id } token = ser.dumps(info) token = token.decode('UTF8') # subject = '注册激活欢迎信息' # message = '' # from_email = settings.EMAIL_FROM # receiver = [email] # html_message = '<h1>%s,欢迎您成为预注册会员!</h1>请点击以下链接激活您的账号:<br/><a ' \ # 'href="http://localhost:8000/user/active/%s">前往激活...</a>' % ( # username, token) # # send_mail(subject, message, from_email, receiver, html_message=html_message) # html_message必须这样写,他不是第五个参数 sendMail.delay(email, username, token) context = { 'username': username } return redirect(reverse('user:login'), context)