def post(self, request): # 验证码参数 hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) reset_form = ResetPasswordForm(request.POST) if reset_form.is_valid(): # 表单 email = request.POST.get('email', "") password = request.POST.get("password", "") email_code = request.POST.get("email_code", "") # 正则表单验证 email_msg = check_email(email) password_msg = check_password(password) email_code_msg = check_email_code(email_code) re_msgs = [] if email_msg: re_msgs.append(email_msg) if password_msg: re_msgs.append(password_msg) if email_code_msg: re_msgs.append(email_code_msg) if len(re_msgs) > 0: return render(request, 'users/reset.html', {locals()}) try: # 取出验证邮箱对应的用户对象 user = UserProfile.objects.get(email=email) except Exception as e: user = None try: # 取出验证码对应的验证邮箱对象 user_veri = EmailVerification.objects.get( Q(code=email_code) & Q(type="modify")) except Exception as e: user_veri = None if user: if user_veri: user_veri_status = user_veri.status if user_veri_status == 0: user.password = make_password(password) user.save() user_veri.status = 1 user_veri.save() return render(request, 'users/reset_success.html', locals()) elif user_veri_status == 1: msg = '该邮箱验证码已激活' return render(request, 'users/reset.html', locals()) else: msg = '未知错误' return render(request, 'users/reset.html', locals()) else: msg = '邮箱验证码错误' return render(request, 'users/reset.html', locals()) else: msg = '邮箱不存在' return render(request, 'users/reset.html', locals()) else: return render(request, 'users/reset.html', locals())
def create_captcha(request): hashkey = CaptchaStore.generate_key() # 生成hashkey imgage = captcha_image(request, hashkey) # 将图片转换为base64 image_base = base64.b64encode(imgage.content) print(hashkey) captcha = {'hashkey': hashkey, 'image_url': image_base.decode('utf-8')} return captcha
def post(self, request): hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) register_form = RegisterForm(request.POST) if register_form.is_valid(): username = request.POST.get("username", "") password = request.POST.get("password", "") email = request.POST.get('email', "") nickname = request.POST.get('nickname', "") # 正则表单验证 username_msg = check_username(username) password_msg = check_password(password) email_msg = check_email(email) re_msgs = [] if username_msg: re_msgs.append(username_msg) if password_msg: re_msgs.append(password_msg) if email_msg: re_msgs.append(email_msg) if len(re_msgs) > 0: return render(request, 'users/register.html', locals()) # 处理数据库中未激活的用户 self.delete_inactive_user() if UserProfile.objects.filter(username=username): msg = "该用户已注册" return render(request, 'users/register.html', locals()) elif UserProfile.objects.filter(email=email): msg = "该邮箱已注册" return render(request, 'users/register.html', locals()) elif UserProfile.objects.filter(nickname=nickname): msg = "该昵称已存在:)" return render(request, 'users/register.html', locals()) user = UserProfile() user.username = username # 明文加密 user.password = make_password(password) user.email = email user.nickname = nickname # 用户状态默认未激活 user.is_active = False user.save() # 邮件发送处理 send_email_code(email, "register") # 邮件登录入口 email_access = email_login_access(email) return render(request, "users/activate.html", { "email": email, "email_access": email_access }) else: return render(request, 'users/register.html', locals())
def get(self, request): hashkey = CaptchaStore.generate_key() try: # 获取图片id id_ = CaptchaStore.objects.filter(hashkey=hashkey).first().id image = captcha_image(request, hashkey) # 将图片转换为base64 字节类型的数据,需要解码成字符串 image_base = base64.b64encode(image.content) data = {"id": id_, "image": image_base.decode("utf-8")} return Response({"code": 1000, "data": data, "message": None}) except: return Response({"code": 1001, "data": None, "message": "请求失败"})
def list(self, request, *args, **kwargs): hashkey = CaptchaStore.generate_key() try: #获取图片id id_ = CaptchaStore.objects.filter(hashkey=hashkey).first().id imgage = captcha_image(request, hashkey) #将图片转换为base64 image_base = base64.b64encode(imgage.content) json_data = json.dumps({"codeId": id_, "image": "data:image/png;base64,"+image_base.decode('utf-8')}) except: json_data = None return HttpResponse(json_data, content_type="application/json")
def get(self, request): ''' 获取图片验证码 :param request: :return: ''' hashkey = CaptchaStore.generate_key() _id = CaptchaStore.objects.filter(hashkey=hashkey).first().id image = captcha_image(request, hashkey) # 将图片转换为base64 image_base = base64.b64encode(image.content) data = {"id": _id, "image_base": image_base.decode('utf-8'), "type": "image/png", "encoding": "base64"} return ApiResponse(data, code=200, msg='ok', status=status.HTTP_201_CREATED)
def get(self, request, *args, **kwargs): #验证码 if request.GET.get('newsn') == '1': # 生成的数字 csn = CaptchaStore.generate_key() #生成的图片路径 cimageurl = captcha_image_url(csn) return HttpResponse(cimageurl) response = super(BlogDetailView, self).get(request, *args, **kwargs) # 每看一次阅读数数量加一 self.object.increase_views() return response
def get(self, request): hashkey = CaptchaStore.generate_key() try: # 获取id id_ = CaptchaStore.objects.filter(hashkey=hashkey).first().id image = captcha_image(request, hashkey) # captcha_image内部是用get获取,需要加异常 # base64加密 image_base = base64.b64encode(image.content) # json_data = json.dumps({"id":id_,"image_base64":image_base.decode('utf-8')}) json_data = {"id": id_, "image_base64": image_base.decode('utf-8')} except: json_data = None return Response(json_data)
def get(self,request): #刷新验证码 if request.GET.get('newsn') == '1': # 生成的数字 csn = CaptchaStore.generate_key() #生成的图片路径 cimageurl = captcha_image_url(csn) return HttpResponse(cimageurl) # get时展示联系方式 info=get_object_or_404(Info,isDelete=False) form= messageForm() return render(request,'contact.html',{'info':info, 'title':'★联系页面', 'form':form})
def get(self, request): # 验证码参数 hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) register_form = RegisterForm() return render(request, 'users/register.html', locals())
def get(self, request): hashkey = CaptchaStore.generate_key() image_url = captcha_image_url(hashkey) return render(request, 'users/reset.html', locals())