Exemple #1
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", "err")  # 闪存错误信息
            return redirect(url_for("admin.login"))  # 跳转到后台登录页
        session["admin"] = data["account"]
        session['admin_id'] = admin.id
        adminlog = Adminlog(admin_id=session['admin_id'],
                            ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #2
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data['pwd']):
            flash("密码错误", "err")
            return redirect(url_for('admin.login'))
        session["admin"] = data['account']
        session["admin_id"] = admin.id
        adminlog = Adminlog(admin_id=session["admin_id"],
                            ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #3
0
def login():
    login_form = LoginForm()
    if login_form.validate_on_submit():
        data = login_form.data  # 把提交的数据提取
        admin = Admin.query.filter_by(name=data["user"]).first()  # 查询数据取一条
        if not admin.check_pwd(data['pwd']):
            flash("密码错误")  # 信息闪现
            return redirect(url_for("admin.login"))
        session["admin"] = data["user"]  # 保存登录后的session
        session["admin_id"] = admin.id
        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(url_for("admin.index")) or redirect(
            request.args.get("next"))  # 回到没登陆错误前的页面

    return render_template('admin/login.html', login_form=login_form)
Exemple #4
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data["pwd"]):
            flash("用户名或密码错误!", "err")
            return redirect(url_for("admin.login"))
        session["admin"] = data["account"]
        session["admin_id"] = admin.id
        # 管理员登录日志
        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))

    return render_template("admin/login.html", form=form)
Exemple #5
0
def login():
    """ 后台登陆 """
    form = LoginForm()
    # 表示表单提交的时候要进行验证
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data['pwd']):
            flash('密码错误!', 'err')
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']
        session['admin_id'] = admin.id
        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #6
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        admin = Admin.query.filter_by(username=form.username.data).first()
        if admin is None or not admin.verify_password(form.password.data):
            flash('Invalid username or password', 'danger')
            return redirect(url_for('admin_bp.login'))
        session.clear()
        session['admin'] = form.username.data
        session['admin_id'] = admin.id
        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        next_page = request.args.get('next')
        if not next_page or url_parse(next_page).netloc != '':
            next_page = url_for('admin_bp.index')
        return redirect(next_page)
    return render_template('admin/login.html', form=form)
Exemple #7
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()  # 查找账号
        if not admin.check_pwd(data['pwd']):  # 验证该账号的密码
            flash("密码错误", 'err')
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']  # seesion保存
        session['admin_id'] = admin.id  # session 保存id
        adminloginlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminloginlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #8
0
def login():
    form = LoginForm()
    if form.validate_on_submit():  # 表单验证,没有这个则无法进行错误信息提示
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("admin.login"))
        session["admin"] = data["account"]  # 如果密码错误,就定义session的会话把数据保存到数据库
        session["admin_id"] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #9
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data['pwd']):
            flash('密码错误', 'error')  # 消息闪现
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']  # 保存登录信息
        session['admin_id'] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next')
                        or url_for('admin.index'))  # 跳转到下一页或后台首页
    return render_template('admin/login.html', form=form)
Exemple #10
0
def login():
    form = LoginForm()
    if form.validate_on_submit():  # 提交时验证
        data = form.data  # 获取数据
        admin = Admin.query.filter_by(
            name=data['account']).first()  # 根据用户名查询出一条记录
        if not admin.check_pwd(data["pwd"]):  # 正确返回True,错误返回False
            flash("密码错误!", "err")  # 消息闪现
            return redirect(url_for("admin.login"))  # 错误跳转页面
        session["admin"] = data["account"]  # 保存账号
        session["admin_id"] = admin.id  # 保存用户id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #11
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        account_information = form.account.data
        admin = Admin.query.filter_by(name=account_information).first()
        if not admin or not admin.check_pwd(form.pwd.data):
            flash('账号或密码错误')
            return redirect(url_for('admin.login'))
        session['admin'] = account_information
        session["admin_id"] = admin.id
        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        #当用户请求重定向到登入视图,它的请求字符串中会有一个next变量,
        # 其值为用户之前访问的页面,因此在我们完成验证之后,
        # 我们通过request.args.get(“next”)获取到用户之前访问的页面地址,
        # 并进行重定向,注意建议对此参数进行安全校验,避免重定向攻击,我有一个验证安全链接的py模块,但这里不想贴了。。。
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #12
0
def login():
    form = LoginForm()
    if form.validate_on_submit():  # 验证
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        print(admin.pwd)
        if not admin.check_pwd(data['pwd']):
            flash('密码错误或用户错误! ', 'err')
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']
        session['admin_id'] = admin.id
        adminlogin = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlogin)
        db.session.commit()
        return redirect(url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #13
0
def login():
    if 'admin' in session:
        return redirect(url_for('admin.index'))
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", 'err')
            return redirect(url_for("admin.login"))
        session['admin'] = data["account"]
        session['admin_id'] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template("admin/login.html", form=form)
Exemple #14
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data['pwd']):
            flash('密码错误!', 'err')
            return redirect(url_for('admin.login'))
        # 保存session会话
        session['admin'] = data['account']  # 如果密码正确,登录成功后添加保持会话,保存管理员账号 # session['admin'] = request.form['account']
        session['admin_id'] = admin.id  # 保存管理员ID(用作日志)
        # 将登录操作添加到管理员登录日志列表
        adminlog = Adminlog(
            admin_id=session['admin_id'],
            ip=request.remote_addr
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.tag_add'))

    return render_template('admin/login.html', form=form)
Exemple #15
0
def login():
    form = LoginForm()
    if form.validate_on_submit():  #表单提交验证
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data['pwd']):
            flash('密码错误!')  #消息闪现
            return redirect(url_for('admin.login'))  #密码不正确,跳到登陆页面
        session['admin'] = data['account']  #密码正确,保存账号到session
        session['admin_id'] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()

        return redirect(
            request.args.get('next')
            or url_for('admin.index'))  #request.args.get('next')代表之前访问的页面
    return render_template('admin/login.html', form=form)
Exemple #16
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # 获取用户提交的表单数据
        data = form.data
        # 根据用户输入的账号查询数据库获取一条账户信息
        admin = Admin.query.filter_by(name=data["account"]).first()
        # 调用在models中定义的check_pwd方法查询密码
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", 'err')
            return render_template("admin/login.html", form=form)
        # 将账户账号存入session
        session["admin"] = data["account"]
        session["admin_id"] = admin.id

        adminlog = Adminlog(admin_id=session['admin_id'],
                            ip=request.remote_addr)
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #17
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data.get('account')).first()
        if not admin.check_pwd(data.get('pwd')):
            flash('身份验证失败!', 'err')
            return redirect(url_for('admin.login'))
        session['admin_logged_in'] = True
        session['admin_name'] = admin.name
        session['admin_id'] = admin.id

        adminlog = Adminlog(
            admin_id=session.get('admin_id'),
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()

        return redirect(request.args.get("next") or url_for('admin.index'))
    return render_template("admin/login.html", form=form)
Exemple #18
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        if Admin.query.filter_by(name=data["account"]).count() == 0:
            flash("Admin name does not exist!", "err")
            return redirect(url_for("admin.login"))
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data["pwd"]):
            flash("Password is invalid!", "err")
            return redirect(url_for("admin.login"))
        session["admin"] = data["account"]
        session["admin_id"] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,  # login IP address
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #19
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        # 获取表单数据
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()  # 查询表信息admin表里的用户名信息first代表查询一条记录
        if not admin.check_pwd(data['pwd']):
            flash("密码错误!", 'err')
            return redirect(url_for('admin.login'))
        # # 如果密码正确,session中添加账号记录,然后跳转到request中的next,或者是跳转到后台的首页
        session["admin"] = data['account']
        session['admin_id'] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,

        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
def login():
    form = LoginForm()
    if form.validate_on_submit():  # 表单是否被提交
        data = form.data  # 字段名字和值组成的字典
        admin = Admin.query.filter_by(
            name=data['account']).first()  # first返回查询的第一个结果
        if not admin.check_pwd(data['pwd']):
            flash("密码错误!")
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']  # 创建session
        session['admin_id'] = admin.id  # 保存管理员id,用来记录日志
        # 管理员登录日志
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()

        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #21
0
def login():
    """ 登录 """
    form = LoginForm()  # 创建登录表单实例
    if form.validate_on_submit():
        data = form.data
        account = Admin.query.filter_by(name=data['account']).first()  # 获取登录传过来的用户
        if not account.check_pwd(data['pwd']):  # 密码错误
            flash('密码错误!')
            return redirect(url_for('admin.login'))
        # session中写入用户信息
        session['admin'] = data['account']
        session['admin_id'] = account.id
        # 添加用户登录日志
        account_log = Adminlog(
            admin_id=account.id,
            ip=request.remote_addr,
        )
        # 写入到数据库中
        db.session.add(account_log)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template("admin/login.html", form=form)
Exemple #22
0
def admin_login():
    """
    后台登录
    :return:
    """
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()

        if not admin.check_pwd(data['pwd']):
            flash('密码错误', 'error')
            return redirect(url_for('admin.index'))

        session['admin'] = data['account']
        session['admin_id'] = admin.id

        adminlog = Adminlog(admin_id=admin.id, ip=request.remote_addr)

        db.session.add(adminlog)
        db.session.commit()
        return redirect(url_for('admin.index'))
    return render_template('admin/login.html', form=form)
Exemple #23
0
def login():
    form = LoginForm()
    if form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("admin.login"))
        #保存session
        session["admin"] = data["account"]
        session["admin_id"] = admin.id
        # admin = Admin.query.filter_by(name=session["admin"]).first()
        g.logo = "mtianyan.jpg"
        #g.logo = "user3 - 128x128.jpg"
        # 后台头像实现的可能解决方法,将当前管理员的头像信息,存在session中。
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next") or url_for("admin.index"))
    return render_template("admin/login.html", form=form)
Exemple #24
0
def login():
    """
    后台登录
    """
    from werkzeug.security import generate_password_hash
    temp = generate_password_hash('admin')
    form = LoginForm()
    if request.method == 'POST' and form.validate_on_submit():
        data = form.data
        admin = Admin.query.filter_by(name=data['account']).first()
        if not admin.check_pwd(data['pwd']):
            flash('密码错误', category='err')
            return redirect(url_for('admin.login'))
        session['admin'] = data['account']
        session['admin_id'] = admin.id
        adminlog = Adminlog(
            admin_id=admin.id,
            ip=request.remote_addr
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get('next') or url_for('admin.index'))
    return render_template("admin/login.html", form=form)
Exemple #25
0
def login():
    form = LoginForm()
    if request.method == "POST":
        if form.validate_on_submit():
            data = form.data
            admin = Admin.query.filter_by(name=data["username"]).first()
            if not admin.check_pwd(data["password"]):
                return jsonify({'code': False, 'message': "账号密码错误!"})
            session["admin"] = data["username"]
            session["admin_id"] = admin.id
            adminlog = Adminlog(
                admin_id=admin.id,
                ip=request.remote_addr,
            )
            db.session.add(adminlog)
            db.session.commit()
            return jsonify({'code': True, 'message': "登录成功!"})
        else:
            return jsonify({
                'code': False,
                'message': errors_first(form.errors)
            })
    return render_template("admin/login.html", form=form)
Exemple #26
0
def login():
    """
    后台登录
    """
    form = LoginForm()
    if form.validate_on_submit():  #如果验证成功
        data = form.data
        admin = Admin.query.filter_by(name=data["account"]).first()
        # 判断验证密码
        if not admin.check_pwd(data["pwd"]):
            flash("密码错误!", "err")
            return redirect(url_for("admin.login"))
        # 如果是正确的,就要定义session的会话进行保存。
        session["admin"] = data["account"]
        session["admin_id"] = admin.id
        adminlog = Adminlog(  #存储管理员登录日志
            admin_id=admin.id,
            ip=request.remote_addr,
        )
        db.session.add(adminlog)
        db.session.commit()
        return redirect(request.args.get("next")
                        or url_for("admin.index"))  #重定向至上下文next,没有就走url_for
    return render_template("admin/login.html", form=form)