예제 #1
0
def register(request):
	
	if request.method == 'POST':

		registration = RegisterForm(request.POST)

		if registration.is_valid():

			print(registration.cleaned_data.get('confirm_password'))

			new_user = User.objects.create(
				name = registration.cleaned_data.get('name'),
				alias = registration.cleaned_data.get('alias'),
				email = registration.cleaned_data.get('email'),
				password = registration.cleaned_data.get('confirm_password')
				)

			messages.success(request, 'Registration Success')
			return HttpResponseRedirect( reverse('users:index') )

		else:
			print(registration.errors)
			return HttpResponseRedirect( reverse('users:index') )


	else:
		print('not allowed!')
		messages.error(request, 'You are not allowed here.')
		return HttpResponseRedirect( reverse('users:index'))
예제 #2
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', None)
            # 如果用户已存在,则提示错误
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': "用户已存在"
                })

            pass_word = request.POST.get('password', None)
            # 实例化一个用户对象
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            # 对保存到数据库的密码进行加密
            user_profile.password = make_password(pass_word)
            user_profile.save()
            send_register_eamil(user_name, 'register')
            return render(request, 'login.html')
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
예제 #3
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            email = request.POST.get('email', '')
            pass_word = request.POST.get('password', '')
            if UserProfile.objects.filter(email=email):
                return render(request, 'register.html', {
                    'msg': '用户已经存在',
                    'register_form': register_form
                })
            user_profile = UserProfile()
            user_profile.username = email
            user_profile.email = email
            user_profile.password = make_password(pass_word)
            user_profile.is_active = False
            user_profile.save()
            # 写入欢迎注册消息
            user_message = UserMessage()
            user_message.user = user_profile.id
            user_message.message = '欢迎注册慕学在线网'
            user_message.save()

            send_register_email(email, 'register')
            return render(request, 'login.html')
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
예제 #4
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            pass_word = request.POST.get("password", "")
            exist_user = UserProfile.objects.filter(
                Q(username=user_name) | Q(email=user_name))
            if exist_user:
                return render(request, "forgetpwd.html",
                              {'msg': "用户已经存在,若是本人忘记密码,请找回密码"})
            # 实例化一个user_profile对象,将前台值存入
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False

            # 加密password进行保存
            user_profile.password = make_password(pass_word)
            user_profile.save()
            send_register_email(user_name, 'register')

            # 给用户发送消息
            user_msg = UserMessage(user=user_profile.id)
            user_msg.message = '欢迎注册孟哥个网站'
            user_msg.save()

            return render(request, "login.html", {'msg': "激活连接已发送,注意查收"})
        else:
            return render(request, "register.html",
                          {"register_form": register_form})
예제 #5
0
    def post(self, request, *args, **kwargs):
        register_form = RegisterForm(request.POST)
        # print(request.POST.get("username",""),'\n')
        # print(request.POST.get("password",""),'\n')
        if register_form.is_valid():
            user_name = request.POST.get("username", "")
            if UserProfile.objects.filter(email=user_name):
                msg = "邮箱已被注册!"
                register_form._errors["msg"] = register_form.error_class([msg])
                return render(request, "register.html",
                              {"register_form": register_form})
            password = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(password)
            user_profile.save()

            if send_email(user_name, "register"):
                return render(request, "send_success.html")
            else:
                return render(request, "send_fail.html")

        else:
            messages.info(request, "邮箱地址非法!")
            print(2333)
            return render(request, "register.html",
                          {"register_form": register_form})
예제 #6
0
    def post(self, request):
        print(1)
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            print(2)
            user_name = request.POST.get('email')
            # 如果用户已存在,则提示错误信息
            capt_cha = request.POST.get('captcha')
            if UserProfile.objects.filter(email=user_name):

                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': '用户已存在'
                })
            print(3)
            pass_word = request.POST.get('password')
            # 实例化一个user_profile对象
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            # 对保存到数据库的密码加密
            user_profile.password = make_password(pass_word)
            user_profile.save()
            send_register_eamil(user_name, 'register')
            return render(request, 'login.html')
        else:
            return render(request, 'register.html', {
                'register_form': register_form,
                'msg': '验证码错误'
            })
예제 #7
0
 def post(self, request):
     register_form = RegisterForm(request.POST)
     if register_form.is_valid():
         user_name = request.POST.get('email')
         pass_word = request.POST.get('password', '')
         user_profile = UserProfile()
         user_profile.username = user_name
         user_profile.email = user_name
         user_profile.password = make_password(pass_word)
         user_profile.save()
         # send_register_email(user_name,'register')
         return render(request, 'login.html')
     else:
         return render(request, 'register.html', {
             'register_form': register_form,
         })
예제 #8
0
파일: views.py 프로젝트: jzy33/MxOnline
 def get(self, request, *args, **kwargs):
     register_get_form = RegisterForm()
     banners = Banner.objects.all()[:3]
     return render(request, 'register.html', {
         'register_get_form': register_get_form,
         'banners': banners,
     })
예제 #9
0
    async def post(self, *args, **kwargs):
        return_data = {}
        params = self.request.body.decode('utf-8')
        params = json.loads(params)
        register_form = RegisterForm.from_json(params)  # wtforms_json用猴子补丁实现的
        if register_form.validate():
            mobile = register_form.mobile.data
            code = register_form.code.data
            password = register_form.password.data

            # 验证码是否正确
            redis_key = f'{mobile}_{code}'  # redis查询的是内存非常快,所以没有必要去使用异步的redis。后期可以用aioredis实现一下异步的redis
            if not self.redis_conn.get(redis_key):
                self.set_status(400)
                return_data['code'] = '验证码错误或者失效'
            else:
                # 验证用户是否存在
                try:
                    existed_users = await self.application.objects.get(User, mobile=mobile)
                    self.set_status(400)
                    return_data['code'] = '用户已存在'
                except User.DoesNotExist as e:
                    user = await self.application.objects.create(User, mobile=mobile, password=password)
                    return_data['id'] = user.id
        else:
            self.set_status(400)
            for field in register_form.erros:
                return_data[field] = register_form[field][0]
        self.finish(return_data)
예제 #10
0
    async def post(self, *args, **kwargs):
        req_data = self.request.body.decode("utf-8")
        req_data = json.loads(req_data)
        nick_name = req_data.get("nick_name")
        regester_form = RegisterForm.from_json(req_data)
        res_data = {}
        if regester_form.validate():
            phone_num = regester_form.phone_num.data
            code = regester_form.code.data
            password = regester_form.password.data
            key = "{}:{}".format(phone_num, code)
            if not self.redis_conn.get(key):
                self.set_status(400)
                res_data["content"] = "验证码错误或已失效"
            else:
                try:
                    await self.application.objects.get(
                        User, phone_num=phone_num
                    )
                    self.set_status(400)
                    res_data["content"] = "用于已存在"
                except User.DoesNotExist:
                    user_obj = await self.application.objects.create(
                        User, phone_num=phone_num, password=password,
                        nick_name=nick_name
                    )
                    res_data["id"] = user_obj.id
                    res_data["content"] = "注册成功"

        else:
            res_data["content"] = regester_form.errors
        self.finish(res_data)
예제 #11
0
 def get(self, request):
     register_form = RegisterForm()
     banners = Banner.objects.filter(type=3).order_by("index")
     return render(request, 'register.html', {
         'register_form': register_form,
         "banners": banners
     })
예제 #12
0
    async def post(self, *args, **kwargs):
        re_data = {}

        params = self.request.body.decode("utf8")
        params = json.loads(params)
        # from_json为猴子补丁加入的新方法,解决json传输
        register_form = RegisterForm.from_json(params)
        if register_form.validate():
            mobile = register_form.mobile.data
            code = register_form.code.data
            password = register_form.password.data

            # 验证码是否正确
            redis_key = "{}_{}".format(mobile, code)
            if not self.redis_conn.get(redis_key):
                self.set_status(400)
                re_data["code"] = "验证码错误或者失效"
            else:
                # 验证用户是否存在
                try:
                    existed_users = await self.application.objects.get(User, mobile=mobile)
                    self.set_status(400)
                    re_data["mobile"] = "用户已经存在"
                except User.DoesNotExist as e:
                    user = await self.application.objects.create(User, mobile=mobile, password=password)
                    re_data["id"] = user.id
        else:
            self.set_status(400)
            for field in register_form.erros:
                re_data[field] = register_form.errors[field][0]

        self.finish(re_data)
예제 #13
0
파일: views.py 프로젝트: jzy33/MxOnline
 def post(self, request, *args, **kwargs):
     register_post_form = RegisterPostForm(request.POST)
     # 校验手机号(是否已经注册),动态验证码,密码
     banners = Banner.objects.all()[:3]
     if register_post_form.is_valid():
         # 获取手机号码和密码
         mobile = register_post_form.cleaned_data['mobile']
         password = register_post_form.cleaned_data['password']
         # 新建一个用户
         # 默认用户名=手机号
         user = UserProfile(username=mobile)
         user.set_password(password)
         # 别忘记存手机号
         user.mobile = mobile
         # 最后对新建的对象进行保存,否则不会存进数据库
         user.save()
         # 注册成功后,跳转首页
         login(request, user)
         return HttpResponseRedirect(reverse('index'))
     # 若验证失败
     else:
         register_get_form = RegisterForm()
         return render(
             request, 'register.html', {
                 'register_get_form': register_get_form,
                 'register_post_form': register_post_form,
                 'banners': banners,
             })
예제 #14
0
    async def post(self, *args, **kwargs):
        re_data = {}
        param = self.request.body.decode('utf8')
        register_form = RegisterForm.from_json(json.loads(param))
        if register_form.validate():
            mobile = register_form.mobile.data
            code = register_form.code.data
            password = register_form.password.data

            # 验证验证码
            redis_key = f'{mobile}_{code}'
            if not self.redis_conn.get(redis_key):
                self.set_status(400)
                re_data['code'] = '验证码错误或失效'
            else:
                # 验证用户是否存在
                try:
                    existed_user = await self.application.objects.get(
                        User, mobile=mobile)
                    re_data['mobile'] = '用户已经存在'
                except User.DoesNotExist as e:
                    user = await self.application.objects.create(
                        User, mobile=mobile, password=password)
                    re_data['id'] = user.id
        else:
            self.set_status(400)
            re_data = register_form.errors

        self.write(re_data)
예제 #15
0
    async def post(self, *args, **kwargs):
        param = self.request.body.decode('utf-8')
        param = json.loads(param)
        form = RegisterForm.from_json(param)
        account = form.account.data
        code = form.code.data
        password = form.password.data

        if form.validate():
            if not self.redis_conn.get(f'{account}_{code}'):
                self.set_status(400)
                return self.json(JsonResponse(code=10006))

            else:
                try:
                    await self.application.objects.get(User, account=account)
                    self.set_status(400)
                    return self.json(JsonResponse(code=10007))

                except User.DoesNotExist:
                    user = await self.application.objects.create(User, account=account, password=password)
                    return self.json(
                        JsonResponse(code=1, data={'id': user.id}))
        else:
            return self.json(JsonResponse(code=10004, msg=form.errors))
예제 #16
0
    async def post(self, *args, **kwargs):
        param = self.request.body.decode('utf-8')
        param = json.loads(param)
        form = RegisterForm.from_json(param)
        account = form.account.data
        code = form.code.data
        password = form.password.data

        if account is None:
            return self.json(Result(code=10080, msg="参数有误, 不可缺少account参数"))
        if code is None:
            return self.json(Result(code=10080, msg="参数有误, 不可缺少code参数"))
        if password is None:
            return self.json(Result(code=10080, msg="参数有误, 不可缺少password参数"))

        if form.validate():
            if not self.redis_conn.get(f'{account}_{code}'):
                return self.json(Result(code=10018, msg="验证码失效或不正确!"))

            else:
                try:
                    existed_user = await self.application.objects.get(
                        User, account=account)
                    return self.json(Result(code=10020, msg='这个账号已经被注册!'))

                # 没有创建user表
                except User.DoesNotExist:
                    user = await self.application.objects.create(
                        User, account=account, password=password)
                    return self.json(
                        Result(code=1, msg='账号注册成功', data={'id': user.id}))
        else:
            return self.json(Result(code=10090, msg=form.errors))
예제 #17
0
    def post(self, request):
        """注册提交"""
        # 校验数据
        register_captcha = RegisterForm(request.POST)
        register_post = RegisterPostForm(request.POST)

        # 取出一个错误
        error_val = ''
        error_key = ''
        for key, val in register_post.errors.items():
            error_val = val[0]
            error_key = key
            break

        if not register_post.is_valid():
            return render(request, 'register.html', {
                'register_captcha': register_captcha,
                'register_post': register_post,
                'error_val': error_val,
                'error_key': error_key,
            })

        # 业务逻辑处理:注册用户
        mobile = register_post.cleaned_data['mobile']
        password = register_post.cleaned_data['password']
        # 注册用户
        user = UserProfile()
        user.username = mobile
        user.mobile = mobile
        user.set_password(password)
        user.save()

        # 验证通过,返回到登录页面
        return redirect(reverse('users:login'))
예제 #18
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        banners = Banner.objects.filter(type=3).order_by("index")
        if register_form.is_valid():
            user_name = request.POST.get('email', None)
            # 如果用户已存在,则提示错误信息
            user_exist = UserProfile.objects.filter(email=user_name)
            if user_exist:
                if user_exist.first().is_active == False:
                    all_records = EmailVerifyRecord.objects.filter(
                        email=user_name)
                    if all_records:
                        for record in all_records:
                            record.delete()
                    send_register_eamil(user_name, 'register')
                    return render(
                        request, 'register.html', {
                            'register_form': register_form,
                            'msg': '用户未激活,邮件已重发,请前往邮箱激活',
                            "banners": banners
                        })
                return render(
                    request, 'register.html', {
                        'register_form': register_form,
                        'msg': '用户已存在',
                        "banners": banners
                    })

            pass_word = request.POST.get('password', None)
            # 实例化一个user_profile对象
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            # 对保存到数据库的密码加密
            user_profile.set_password(pass_word)
            user_profile.save()
            send_register_eamil(user_name, 'register')
            return render(
                request, 'register.html', {
                    'register_form': register_form,
                    'msg': '邮件已发送,请前往邮箱激活',
                    "banners": banners
                })
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
예제 #19
0
 def get(self, request, *args, **kwarg):
     login_url = "/login/"
     captcha_form = RegisterForm()
     current_page = "info"
     return render(request, "usercenter-info.html", {
         "captcha_form": captcha_form,
         "current_page": current_page
     })
예제 #20
0
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get('email', '')
            if PingUser.objects.filter(email=user_name):
                return render(request, 'register.html', {"register_form": register_form, "msg": "用户已经存在"})
            pass_word = request.POST.get('password', '')
            user_profile = PingUser()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            send_register_email(user_name, "register")
            return render(request, 'login.html')
        else:
            return render(request, 'register.html', {"register_form": register_form})
예제 #21
0
파일: views.py 프로젝트: jzy33/MxOnline
    def get(self, request, *args, **kwargs):
        current_page = "info"

        # 获取图形码
        captcha_form = RegisterForm()
        return render(request, 'usercenter-info.html', {
            "captcha_form": captcha_form,
            "current_page": current_page,
        })
예제 #22
0
def index(request):

	registration_form = RegisterForm()
	login_form = LoginForm()

	context = {
	'registration_form' : registration_form,
	'login_form' : login_form,
	}
	return render(request, 'users/pages/index.html', context)
예제 #23
0
 def post(self, request):
     register_form = RegisterForm(request.POST)
     if register_form.is_valid():
         email = request.POST.get('email')
         if UserProfile.objects.filter(email=email):
             return render(request, 'register.html', {
                 'msg': '用户以注册',
                 'register_form': register_form
             })
         pass_word = request.POST.get('password')
         user_profile = UserProfile()
         user_profile.username = email
         user_profile.email = email
         user_profile.is_active = False
         user_profile.password = make_password(pass_word)
         user_profile.save()
         send_register_email(email, 'register')
         return render(request, 'login.html', {})
     else:
         return render(request, 'register.html',
                       {'register_form': register_form})
예제 #24
0
파일: views.py 프로젝트: xdtcssdi/sc_p
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            username = request.POST.get('email', '')
            if UserProfile.objects.filter(email=username):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': '用户已经存在'
                })
            password = request.POST.get('password', '')
            user_profile = UserProfile(is_staff=True,
                                       username=username,
                                       email=username,
                                       password=make_password(password),
                                       is_active=False)
            user_profile.save()
            send_register_email(username, 'register')

            return render(request, 'login.html')

        return render(request, 'register.html',
                      {'register_form': register_form})
예제 #25
0
파일: views.py 프로젝트: LDDINCH/mxonline
    def post(self, request):
        register_form = RegisterForm(request.POST)
        if register_form.is_valid():
            user_name = request.POST.get("email", "")
            if UserProfile.objects.filter(email=user_name):
                return render(request, 'register.html', {
                    'register_form': register_form,
                    'msg': '用户已存在'
                })
            pass_word = request.POST.get("password", "")
            user_profile = UserProfile()
            user_profile.username = user_name
            user_profile.email = user_name
            user_profile.is_active = False
            user_profile.password = make_password(pass_word)
            user_profile.save()

            send_register_email(user_name, 'register')
            return render(request, 'login.html')
        else:
            return render(request, 'register.html',
                          {'register_form': register_form})
예제 #26
0
 def post(self, request, *args, **kwarg):
     register_post_form = RegisterPostForm(request.POST)
     # dynamic_login = True
     if register_post_form.is_valid():
         mobile = register_post_form.cleaned_data["mobile"]
         password = register_post_form.cleaned_data["password"]
         user = UserProfile(username=mobile)
         user.set_password(password)
         user.mobile = mobile
         user.save()
         login(request, user)
         return HttpResponseRedirect(reverse("index"))
     else:
         register_get_form = RegisterForm()
         return render(
             request, "register.html", {
                 "register_get_form": register_get_form,
                 "register_post_form": register_post_form
             })
예제 #27
0
    async def post(self, *args, **kwargs):

        re_data = {}

        params = self.request.body.decode('utf-8')
        params = json.loads(params)

        register_form = RegisterForm.from_json(params)

        if register_form.validate():
            # 取出相关数据
            mobile = register_form.mobile.data
            code = register_form.code.data
            password = register_form.password.data

            # 校验验证码
            redis_key = f'{mobile}_{code}'

            if self.redis_conn.get(redis_key):
                # 对用户是否存在进行校验 使用 get 方法 不存在则报错
                try:
                    existed_user = await self.application.objects.get(
                        User, mobile=mobile)
                    self.set_status(400)
                    re_data["mobile"] = "用户已存在"

                except User.DoesNotExist as e:
                    user = await self.application.objects.create(
                        User, mobile=mobile, password=password)
                    re_data["id"] = user.id

            else:

                self.set_status(400)
                re_data['code'] = '验证码错误或者已失效!'

        else:
            self.set_status(400)
            for field in register_form.errors:
                re_data[field] = register_form.errors[field][0]

        self.finish(re_data)
예제 #28
0
파일: handler.py 프로젝트: yktimes/YkForm
    async def post(self, *args, **kwargs):
        param = self.request.body.decode('utf8')

        re_data = {}

        param = json.loads(param)
        # 注意这里
        register_form = RegisterForm.from_json(param)
        if register_form.validate():
            mobile = register_form.mobile.data
            code = register_form.code.data
            password = register_form.password.data

            # 验证码是否正确
            redis_key = "{}_{}".format(mobile, code)
            if not self.redis_conn.get(redis_key):
                self.set_status(400)
                re_data['code'] = "验证码错误"

            else:
                try:
                    # 验证用户是否存在
                    existed_users = await self.application.objects.get(
                        User, mobile=mobile)
                    self.set_status(400)
                    re_data['mobile'] = '用户已存在'
                except User.DoesNotExist as e:
                    user = await self.application.objects.create(
                        User, mobile=mobile, password=password)
                    re_data['id'] = user.id
        else:
            self.set_status(400)
            for field in register_form.errors:
                re_data[field] = register_form[field][0]

        self.finish(re_data)
예제 #29
0
파일: views.py 프로젝트: xdtcssdi/sc_p
 def get(self, request):
     register_form = RegisterForm()
     return render(request, 'register.html',
                   {'register_form': register_form})
예제 #30
0
 def get(self, request):
     """显示页面"""
     register_captcha = RegisterForm(request.POST)
     return render(request, 'register.html', {'register_captcha': register_captcha})