我正在使用基於Werkzeug的Flask微框架,該框架使用Python。燒瓶/ Werkzeug,登錄後如何返回上一頁
每個受限頁面之前有一個裝飾,以確保用戶登錄,目前他們返回到登錄頁面,如果他們還沒有登錄,就像這樣:
# 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)
### ... ###
登錄後,它需要將用戶返回到將他們帶到登錄頁面的頁面。 它還需要保留東西,如傳遞的變量(即整個鏈接基本上www.example.com/download_file?id=3)
有誰知道如何做到這一點?
謝謝您的幫助:-)
+1另請參閱第一個鏈接,以獲得方便的小功能燒瓶,以做到這一點 – unmounted 2010-09-11 07:53:35
get_current_url()is flask.request.url – 2011-09-23 14:18:29