Пример #1
0
def user_login(request):
    if request.method == "POST":
        form = UserLoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            # authenticating the user
            user = authenticate(username=username, password=password)
            # checking if user is already logged in
            if user:
                if user.is_active:
                    login(request, user
                          )  # pass the request and user authentication object
                    return HttpResponseRedirect(reverse('blog-home'))
                else:
                    messages.warning(request, "user is not active")
            else:
                messages.warning(request,
                                 "It's not valid username and password!")
    else:
        form = UserLoginForm()
    context = {
        'form': form,
    }
    return render(request, 'user/user_login.html', context)
Пример #2
0
def user_login(request):
    if request.method == 'POST':
        user_login_form = UserLoginForm(data=request.POST)

        if user_login_form.is_valid():
            # .cleaned_data 清洗出合法数据
            # Form不仅负责验证数据,还可以“清洗”它:将其标准化为一致的格式,
            # 这个特性使得它允许以各种方式输入特定字段的数据,并且始终产生一致的输出。
            # 一旦Form使用数据创建了一个实例并对其进行了验证,就可以通过cleaned_data属性访问清洗之后的数据
            data = user_login_form.cleaned_data

            # 检验账号、密码是否正确匹配数据库中的某个用户
            # 如果均匹配则返回这个 user 对象
            # authenticate()方法验证用户名称和密码是否匹配,如果是,则将这个用户数据返回。
            user = authenticate(username=data['username'],
                                password=data['password'])
            if user:
                # login()方法实现用户登录,将用户数据保存在session中
                login(request, user)
                # 登陆成功,返回主页
                return redirect("article:article_list")
            else:
                return HttpResponse("账号或密码输入有误。请重新输入~")
        else:
            return HttpResponse("账号或密码输入不合法")
    elif request.method == 'GET':
        user_login_form = UserLoginForm()
        data = {'user_login_form': user_login_form}
        return render(request, 'user/login.html', data)
    else:
        return HttpResponse("请使用GET或POST请求数据")
Пример #3
0
def login(request):
    next_url = request.GET.get('next', False)
    if request.user.is_authenticated():
        return HttpResponseRedirect("/dashboard/")

    form = UserLoginForm()
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username'].lower()
            password = request.POST['password']
            new_user = authenticate(username=username, password=password)

            if new_user is not None:
                if new_user.is_active:
                    user_login(request, new_user)

                    if next_url:
                        return HttpResponseRedirect(next_url)
                    else:
                        return HttpResponseRedirect(
                            reverse("dashboard:dashboard"))
                else:
                    messages.warning(
                        request,
                        'Your account is not activeted, please activate your account!'
                    )
            else:
                messages.warning(request,
                                 'Login email and password are incorrect!!')

    return render(request, "users/login.html", {
        'form': form,
        'next': next_url
    })
Пример #4
0
def register_post(request):
    """只接受post请求的注册接口"""
    if request.method == "POST":
        user = UserLoginForm(request.POST)
        # print(user)
        # 验证表单数据
        if not user.is_valid():
            # print(user.errors.get_json_data)
            # # print(user.)
            # # print(vaild)
            return JsonResponse(user.errors.get_json_data(), safe=False)
    user = UserLoginForm()
    return render(request, "user/register_post.html", {"user": user})
Пример #5
0
 def get(self, request):
     if request.user.is_authenticated:
         return redirect('schemas')
     form = UserLoginForm()
     template = 'user/login.html'
     context = {'form': form}
     return render(request, template, context=context)
Пример #6
0
def login(request):
    # get请求返回登录页面
    if request.method == 'GET':
        return render(request, 'login.html')
    # POST
    if request.method == 'POST':
        # 拿到post请求的参数存在data里
        data = request.POST
        # 创建一个类UserLoginForm
        # 将请求参数去给form表单做验证
        form = UserLoginForm(data)
        # 校验结果:返回true表示校验成功 就是有user
        if form.is_valid():
            # 使用随机标识符token
            user = auth.authenticate(username=form.cleaned_data.get('username'),
                                     password=form.cleaned_data.get('password'))
            if not user:
                # 没有user对象 表示验证密码不通过
                return render(request, 'login.html', {'msg': '密码错误'})
            else:
                # 实现登录 request, user等于登录系统用户对象
                auth.login(request, user)
                return HttpResponseRedirect(reverse('user:index'))
        # 校验结果:返回false表示校验失败 就是没有user
        else:
            # 验证失败 返回错误信息给页面
            # return render(request, 'login.html', {'errors': form.errors})
            errors = form.errors
            return render(request, 'login.html', {'errors': errors})
Пример #7
0
    def post(self, request):
        form = UserLoginForm(request.POST)
        message = '请检查填写的内容!'
        if form.is_valid():
            username = form.cleaned_data.get('username_or_email')
            password = form.cleaned_data.get('password')
            # 如果符合邮件正则
            if re.match(r'^[0-9a-zA-Z_.]+@[A-Za-z]+\.[a-zA-Z]+$',
                        str(username)):
                email = username
                try:
                    email_user = User.objects.get(email=email)
                except User.DoesNotExist:
                    message = '邮件不存在'
                    return render(request, 'registration/login.html', {
                        'form': form,
                        'message': message
                    })
                if email_user is not None:
                    username = email_user.username

            user = authenticate(request, username=username, password=password)
            if user is not None:
                login(request, user)
                return redirect(reverse('core:MovieList'))

        return render(request, 'registration/login.html', {
            'form': form,
            'message': message
        })
Пример #8
0
 def test_user_login_form_valid(self):
     form_data = {
         'email': self.email_valid,
         'password': self.password_valid
     }
     form = UserLoginForm(data=form_data)
     self.assertTrue(form.is_valid())
Пример #9
0
 def test_valid_form(self):
     """Test valid form"""
     form = UserLoginForm({
         "email": "*****@*****.**",
         "password": "******"
     })
     self.assertTrue(form.is_valid())
Пример #10
0
 def test_user_login_form_invalid_NULL_2(self):
     form_data = {
         'email': self.email_invalid,
         'password': self.password_invalid_NULL
     }
     form = UserLoginForm(data=form_data)
     self.assertFalse(form.is_valid())
Пример #11
0
def login(request):
    if request.method == 'GET':
        # 返回登录页面
        return render(request, 'login.html')

    if request.method == 'POST':
        # 获取所有的请求数据
        data = request.POST
        # 将数据交给form表单验证
        form = UserLoginForm(data)

        if form.is_valid():
            # 如果验证通过就将数据保存到数据库
            user = auth.authenticate(username=form.cleaned_data.get('username'),
                                     password=form.cleaned_data.get('password'))
            if not user:
                # 没有user对象,表示验证密码不通过
                return render(request, 'login.html')
            # 实现登录,request.user等于登录系统用户对象
            auth.login(request, user)
            return HttpResponseRedirect(reverse('user:index'))

        else:
            # 验证失败返回错误信息
            errors = form.errors
            return render(request, 'login.html', {'errors': errors})
Пример #12
0
def login(request):
    if request.method == 'GET':
        #GET请求返回登录页面
        return render(request, 'login.html')

    if request.method == 'POST':
        #将请求参数给form表单做验证
        data = request.POST
        form = UserLoginForm(data)
        #校验结果,返回true表示校验成功
        if form.is_valid():
            user = auth.authenticate(
                username=form.cleaned_data.get('username'),
                password=form.cleaned_data.get('password'))
            if not user:

                return render(request, 'login.html')

            #实现登录
            auth.login(request, user)
            return HttpResponseRedirect(reverse('user:index'))

        else:
            #验证失败

            errors = form.errors
            return render(request, 'login.html', {'errors': errors})
Пример #13
0
def login(request):
    if request.method == 'GET':
        # get请求返回登录页面
        return render(request, 'login.html')
    if request.method == 'POST':
        # 将请求参数丢给form表单做检验
        form = UserLoginForm(request.POST)
        # 校验结果, 返回true表示校验成功
        if form.is_valid():
            user = auth.authenticate(
                username=form.cleaned_data.get('username'),
                password=form.cleaned_data.get('password'))
            if not user:
                # 没有user对象, 表示验证密码不通过
                return render(
                    request,
                    'login.html',
                )
            # 实现登录, request.user等于登录系统用户对象
            auth.login(request, user)
            return HttpResponseRedirect(reverse('user:index'))
        else:
            # 验证失败, 返回错误信息给页面
            errors = form.errors
            return render(request, 'login.html', {'errors': errors})
Пример #14
0
def user_login(request):
    if request.method == 'POST':
        login_form = UserLoginForm(request.POST)
        if login_form.is_valid():
            user = authenticate(username=login_form.cleaned_data.get('username'), 
                password=login_form.cleaned_data.get('password'))
            if user is not None:
                login(request, user)

                redirect_url = reverse_lazy('profile')
                return HttpResponseRedirect(redirect_url)

            login_form.add_error(None, 'check username and password')
    else:
        login_form = UserLoginForm()

    return render(request, 'login.html', {'login_form': login_form})
Пример #15
0
def user_login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username, password=password)
            if user:
                if user.is_active:
                    login(request, user)
                    return HttpResponseRedirect(reverse('sell:home'))
                else:
                    return HttpResponse('User is not active')
            else:
                return HttpResponse('Invalid User')
    else:
        form = UserLoginForm()
    return render(request, 'login.html', {'form': form})
Пример #16
0
def register_post(request):
    """只接受post请求的注册接口"""
    if request.method == 'POST':
        user = UserRegisterForm(request.POST)
        # print(user)
        if not user.is_valid():
            # valid = user.is_valid()
            return JsonResponse(user.errors.get_josn_data, safe=False)
    user = UserLoginForm()
    return render(request, 'user/register_post.html', {'user': user})
Пример #17
0
    def post(self, request):
        form = UserLoginForm(data=request.POST)
        template = 'user/login.html'
        if form.is_valid():
            user = form.get_user()
            login(request, user)
            return redirect('schemas')

        else:
            context = {'form': form}
            return render(request, template, context=context)
Пример #18
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            # 验证通过,进行会话
            request.session['user_id'] = User.objects.filter(
                username=form.cleaned_data.get('username')).first().id
            return HttpResponseRedirect(reverse('goods:index'))
        return render(request, 'login.html', {'errors': form.errors})
Пример #19
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            request.session['account_number'] = form.cleaned_data[
                'account_number']
            return HttpResponseRedirect(reverse('train:index'))
        errors = form.errors
        return render(request, 'login.html', {'errors': errors})
Пример #20
0
def login_view(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            data = form.cleaned_data
            user = authenticate(request=request, username=data['username'], password=data['password'])
            if user is not None:
                login(request, user=user)
                return HttpResponseRedirect(reverse_lazy('two-factor-verification', kwargs={'source': 'login'}))
            else:
                # return HttpResponse('Wrong credentials')
                form.add_error(None, "Wrong Credentials")
                context = {'form': form}
                return render(request, 'user/login.html', context=context)
        else:
            context = {'form': form}
            return render(request, 'user/login.html', context=context)
    else:
        form = UserLoginForm()
        context = {'form': form}
        return render(request, 'user/login.html', context=context)
Пример #21
0
def login(request):
    # 登陆功能
    if request.method == "POST":
        data = request.POST
        form = UserLoginForm(data)
        if form.is_valid():
            # 如果表单数据通过合法验证,保存session并且跳转到个人中心
            user = form.cleaned_data.get('user')
            set_session(request, user)
            # 判断是否有参数next
            next = request.GET.get("next")
            if next:
                return redirect(next)
            else:
                return redirect("user:center")
        else:
            context = {"errors": form.errors, "form": form}
            return render(request, 'user/login.html', context)

    else:
        form = UserLoginForm()
        return render(request, 'user/login.html', {"form": form})
Пример #22
0
def login(request):
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(
                username=request.POST.get('username_or_email'),
                password=request.POST.get('password'))

            if user is not None:
                auth.login(request, user)
                messages.error(request, "You have successfully logged in")

                if request.GET and 'next' in request.GET:
                    next = request.GET['next']
                    return HttpResponseRedirect(next)
                else:
                    return redirect(reverse('profile'))
            else:
                form.add_error(None,
                               "Your username or password was not recognised")

    else:
        # this handles the initial get request
        # return a blank form for user to login
        form = UserLoginForm()

    # prepare args to pass to render function
    #   form:   this is the form which will be rendered to html (UserLoginForm)
    #   next:   if the url of the request included a next query string '?next=' pass it to the form
    #           so that it can be included in the url when the form is resubmitted
    #           see handling of post method: next = request.GET['next']
    args = {
        'form':
        form,
        'next':
        request.GET['next'] if request.GET and 'next' in request.GET else ''
    }
    args.update(csrf(request))
    return render(request, 'login.html', args)
Пример #23
0
def login_view(request):
    category = Category.objects.all()
    setting = Setting.objects.get(pk=1)
    form = UserLoginForm()
    context = {}
    loginerror = False
    if request.method == 'POST':
        #This is a manul process, we can do it as per framing short way
        data = User()
        form = UserLoginForm(request.POST)

        if form.is_valid():
            data.username = form.cleaned_data['username']
            username = data.username
            data.password = form.cleaned_data['password']
            password = data.password

            user = authenticate(request, username=username, password=password)
            if user is not None:
                login(request, user)
                current_user = request.user
                userprofile = UserProfile.objects.get(user_id=current_user.id)
                request.session['userimage'] = userprofile.Image.url
                return HttpResponseRedirect('/')
            else:
                loginerror = True
                context = {
                    'loginerror': loginerror,
                    'setting': setting,
                    'category': category,
                }
                return render(request, 'login.html', context)

    context = {
        'setting': setting,
        'category': category,
    }
    return render(request, 'login.html', context)
Пример #24
0
    def post(self, request):
        user_login_form = UserLoginForm(request.POST)

        if user_login_form.is_valid():
            user_login_form.save()

            username = user_login_form.cleaned_data.get('username')
            raw_password = user_login_form.cleaned_data.get('password1')

            user = authenticate(username=username, password=raw_password)

            login(request, user)

            return HttpResponseRedirect(reverse_lazy('blog:blog-list'))
Пример #25
0
def login_user(request):
    """
        second way to login we'll use UserLoginForm class that we creation in user/forms.py file
        this the code of the second way using our Model & request.method
    """
    if request.user.is_authenticated:
        return redirect('home')
    elif request.method == 'POST':
        form = UserLoginForm()
        username, password = request.POST['username'], request.POST['password']
        user = authenticate(request, username=username, password=password)
        if user is not None:
            login(request, user)
            return redirect('home')
        else:
            messages.warning(request, 'إسم المستخدم او كلمة المرور غير صحيحة!')
    else:
        form = UserLoginForm()

    return render(request, 'user/login.html', {
        'title': 'تسجيل الدخول',
        'form': form
    })
Пример #26
0
def user_login(request):
    if request.method == 'POST':
        user_login_form = UserLoginForm(request.POST)
        if user_login_form.is_valid():
            username = request.POST['username']
            password = request.POST['password']
            user = authenticate(username=username,password=password)
            if user:
                login(request,user)
                return redirect("blog:blog")
            else:
                return render(request,'user/login.html',{'errmsg':"用户名或密码输入有误,请重新输入",
                                                         'username':username,
                                                         'password':password})
    elif request.method == 'GET':
        return render(request,'user/login.html',{'errmsg':None})
Пример #27
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = auth.authenticate(username=form.cleaned_data['username'],
                                     password=form.cleaned_data['password'])
            if user:
                # request.user赋值,赋值为登录用户对象
                auth.login(request, user)
                return HttpResponseRedirect(reverse('user:my_index'))
            else:
                return render(request, 'login.html')
        else:
            return render(request, 'login.html', {'errors': form.errors})
Пример #28
0
def login(request):
    """登录"""
    if request.method == 'GET':
        return render(request, 'login.html')

    if request.method == 'POST':
        # 使用cookie+session形式实现登陆
        form = UserLoginForm(request.POST)
        if form.is_valid():
            user = User.objects.filter(
                username=request.POST.get('username')).first()
            request.session['username'] = user.username
            ip = get_host_ip()
            LoginLog.objects.create(login_ip=ip, loginer=user)
            return HttpResponseRedirect(reverse('user:index'))
        else:
            return render(request, 'login.html', {'form': form})
Пример #29
0
def login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    if request.method == 'POST':
        form = UserLoginForm(request.POST)
        if form.is_valid():
            pwd = form.cleaned_data['pwd']
            username = form.cleaned_data['username']
            user = User.objects.filter(username=username).first()
            if check_password(pwd, user.password):
                # 校验成功
                request.session['user_id'] = user.id
                return HttpResponseRedirect(reverse('goods:index'))
            else:
                err_pwd = '账号或密码错误'
                return render(request, 'login.html', {'err_pwd': err_pwd})
        else:
            errors = form.errors
            return render(request, 'login.html', {'errors': errors})
Пример #30
0
def user_login(request):
    if request.method == 'GET':
        return render(request, 'login.html')
    else:
        user_form = UserLoginForm(request.POST)
        if user_form.is_valid():
            username = user_form.cleaned_data['username']
            password = user_form.cleaned_data['password']
            user = authenticate(username=username, password=password)
            if user:
                if user.is_active == 1:
                    login(request, user)
                    return redirect(reverse('index'))
                else:
                    return HttpResponse('账号还未激活!')
            else:
                return render(request, 'login.html', {'msg': '用户名或者密码错误'})
        else:
            return render(request, 'login.html', {'user_form': user_form})