相关疑难解决方法(0)

Flask/Werkzeug,登录后如何返回上一页

我正在使用基于Werkzeug的Flask微框架,它使用Python.

在每个受限制的页面之前有一个装饰器,以确保用户登录,如果他们没有登录,当前将它们返回到登录页面,如下所示:

# Decorator
def logged_in(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        try:
            if not session['logged_in']:
                flash('Please log in first...', 'error')
                return redirect(url_for('login'))
            else:
                return f(*args, **kwargs)
        except KeyError:
            flash('Please log in first...', 'error')
            return redirect(url_for('login'))
    return decorated_function


# Login function
@app.route('/', methods=['GET', 'POST'])
def login():
    """Login page."""
    if request.method=='POST':
    ### Checks database, etc. ###
    return render_template('login.jinja2')


# Example 'restricted' page
@app.route('/download_file')
@logged_in
def download_file():
    """Function used to send files for download to user."""
    fileid = request.args.get('id', 0)
    ### ... ###
Run Code Online (Sandbox Code Playgroud)

登录后,需要将用户返回到将其带到登录页面的页面.它还需要保留诸如传递的变量之类的东西(即整个链接基本上都是www.example.com/download_file?id=3) …

python login werkzeug flask

23
推荐指数
2
解决办法
1万
查看次数

标签 统计

flask ×1

login ×1

python ×1

werkzeug ×1