Example #1
0
def cms_login(request):
    if request.method == 'GET':
        return render(request, 'cms_login.html')
    else:
        form = LoginForm(request.POST)
        print form.is_valid()
        if form.is_valid():
            username = form.cleaned_data.get('username', None)
            password = form.cleaned_data.get('password', None)
            remember = form.cleaned_data.get('remember', None)
            print username, password
            #1.验证数据库里是否有这个用户
            user = authenticate(username=username, password=password)
            print 'user:'******'next')
                if nexturl:
                    return redirect(nexturl)
                else:
                    return redirect(reverse('cms_index'))  #重定向到首页
                #reverse作用的是urls里面的name
            else:
                return render(request, 'cms_login.html',
                              {'error': u'用户名或者密码错误'})
        else:
            return render(request, 'cms_login.html',
                          {'error': form.get_error()})
Example #2
0
def cms_login(request):
    if request.method == 'GET':
        return render(request, 'cms_login.html')
    else:
        print request.POST, '-' * 10
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username', None)
            password = form.cleaned_data.get('password', None)
            remember = form.cleaned_data.get('remember', None)
            # 1. 先用authenticate进行验证
            user = authenticate(username=username, password=password)
            if user:
                # 2. 需要登录,
                # 3. 我们的login视图函数不要和login重名
                login(request, user)
                # 判断如果有remember,那么说明需要记住,使用None将
                # 使用settings.py中SESSION_COOKIE_AGE指定的值,
                # 这个值默认是14天
                if remember:
                    request.session.set_expiry(None)
                else:
                    # 浏览器一旦关闭,session就会过期
                    request.session.set_expiry(0)
                nexturl = request.GET.get('next')
                if nexturl:
                    return redirect(nexturl)
                else:
                    return redirect(reverse('cms_index'))
            else:
                return render(request, 'cms_login.html',
                              {'error': u'用户名或密码错误!'})
        else:
            return render(request, 'cms_login.html',
                          {'error': form.get_error()})
Example #3
0
    def post(self):
        form = LoginForm(request.form)
        if form.validate():
            email = form.email.data
            password = form.password.data
            remember = form.remember.data
            user = User.query.filter_by(email=email).first()
            if user and user.password == password:
                session['user_id'] = user.id

                if remember:
                    session.permanent = True
                    app.permanent_session_lifetime = timedelta(minutes=3600)
                return redirect(url_for('index'))
            else:
                return self.get(message='邮箱或密码错误')
        else:
            message = form.get_error()
            return self.get(message=message)
Example #4
0
 def post(self):
     form = LoginForm(request.form)
     if form.validate():
         email = form.email.data
         password = form.password.data
         user = User.query.filter_by(email=email).first()
         if user and user.password == password:
             session['user_id'] = user.id
             #if remember:
                 # 如果设置sesion.premanent = True
                 # 过期时间为30天
                 #session.permanent = True
             if Questionnaire.query.filter_by(user_id=user.id).first():
                 return redirect(url_for('index'))
             return redirect(url_for('question'))
         else:
             #flash('邮箱或密码错误')
             return self.get(message='邮箱或密码错误')
     else:
         message = form.get_error()
         # print(message)
         return self.get(message=message)
Example #5
0
def login():
    """
    登录页面
    :return:
    """
    if request.method == 'GET':
        return render_template('login.html')
    else:
        form = LoginForm(request.form)
        if form.validate():
            email = form.email.data
            password = form.password.data
            remember = form.remember.data
            user = HrUser.query.filter_by(email=email).first()
            if user and user.check_password(password):
                session[config.HR_USER_ID] = user.id
                if remember:
                    # 默认过期时间31天
                    session.permanent = True
                return restful.success()
            else:
                return restful.params_error(message='邮箱或密码错误')
        else:
            return restful.params_error(message=form.get_error())
Example #6
0
def cms_login(request):  # 登录函数
    if request.method == 'GET':
        print "request.GET过来的数据 =", request.GET
        return render(request, 'cms_login.html')
    else:
        print "request.POST过来的数据 =", request.POST
        print "request.POST.get()"  # 用这种方法,及时没有remember这个参数,也不会报错,会默认为None
        print "request.POST过来的数据username ="******"username")
        print "request.POST过来的数据password ="******"password")
        print "request.POST过来的数据captcha =", request.POST.get("captcha")
        print "request.POST过来的数据remember =", request.POST.get("remember")
        print "request.POST[]"  # 不要用这种方法,因为request.POST[]可能没有remember这个参数
        # print "request.POST过来的数据username ="******"username"]
        # print "request.POST过来的数据password ="******"password"]
        # print "request.POST过来的数据captcha =", request.POST["captcha"]
        # print "request.POST过来的数据remember =", request.POST["remember"]
        form = LoginForm(request.POST)
        if form.is_valid():  # form.is_valid()表示表单设置的条件均成立
            username = form.cleaned_data.get('username', None)
            password = form.cleaned_data.get('password', None)
            captcha = form.cleaned_data.get('captcha', None)
            remember = form.cleaned_data.get('remember', None)
            print "form的数据username ="******"form的数据password ="******"form的数据captcha =", captcha
            print "form的数据remember =", remember
            # 1. 先用authenticate进行验证
            user = authenticate(username=username, password=password)
            print "user ="******"type(user) =", type(user)
            if user:
                # 2. 需要登录,
                # 3. 我们的login视图函数不要和login重名
                login(request, user)
                # 判断如果有remember,那么说明需要记住,使用None将
                # 使用settings.py中SESSION_COOKIE_AGE指定的值,
                # 这个值默认是14天
                if remember:  # 如果勾选了“记住我”
                    print "用户勾选了“记住我”"
                    request.session.set_expiry(None)
                    """
                 一、request.session.set_expiry(value);可以传递四种不同的值给它:
                    *如果value是个整数,session会在些秒数后失效。
                    *如果value是个datatime或timedelta,session就会在这个时间后失效。
                    *如果value是0, 用户关闭浏览器session就会失效。 // 我们用的就是这种方式
                    *如果value是None, session会依赖全局session失效策略。
                 """
                else:  # 如果没有勾选“记住我”
                    print "用户没有勾选“记住我”"
                    request.session.set_expiry(0)  # 浏览器一旦关闭,session就会过期

                nexturl = request.GET.get('next')
                print "nexturl =", nexturl
                if nexturl:  # 如果nexturl非空,则跳转到原来的地址
                    return redirect(nexturl)
                else:  # 如果为空,则默认跳转到主页,查路由表得知,即article_manage
                    return redirect(reverse('cms_index'))
            else:
                return render(request, 'cms_login.html', {'error': '用户名或密码错误!'})
        else:
            return render(request, 'cms_login.html', {'error': form.get_error()})