请问老师,login的路由函数中无法获取到next的值是为什么,直接将next的值返回到浏览器中显示的是None

来源:9-16 重定向攻击

檀彬

2018-07-11

@web.route('/login', methods=['GET', 'POST'])
def login():
    form = LoginForms(request.form)
    if request.method == 'POST' and form.validate():
        user = User.query.filter_by(nickname=form.nickname.data).first()
        if user and user.check_password(form.password.data):
            login_user(user)
            next = request.args.get('next')
            # if not next or not next.startswith('/'):
            #     next = url_for('web.login')
            return "%s" %next
        else:
            flash('账号不存在或密码错误', category='login_error')
    return render_template('auth/login.html', form=form)

写回答

1回答

7七月

2018-07-15

这个next就是request中所携带的一个参数,是不是本身url里就没有next参数呢?

0
1
檀彬
谢谢老师,问题解决了,由于视图文件是自己写的,没有用老师提供的,导致form标签的action特性设置错误,POST的URL被固定了没有next参数
2018-07-15
共1条回复

Python Flask高级编程之从0到1开发《鱼书》精品项目

7月老师深入浅出剖析Flask核心机制,和你一起探讨Python高级编程

2775 学习 · 1280 问题

查看课程