Exemplo n.º 1
0
    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': '用户已存在'})
Exemplo n.º 2
0
    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'))
Exemplo n.º 3
0
    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'))
Exemplo n.º 4
0
    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'))
Exemplo n.º 5
0
    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'))
Exemplo n.º 6
0
    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('/')
Exemplo n.º 7
0
    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)