J'utilise le micro-framework Flask basé sur Werkzeug, qui utilise Python.Flask/Werkzeug, comment retourner la page précédente après la connexion
Avant chaque page restreinte, il est un décorateur pour assurer que l'utilisateur est connecté, les retourner actuellement à la page de connexion si elles ne sont pas connectés, comme ceci:
# 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)
### ... ###
Une fois connecté, il a besoin pour renvoyer les utilisateurs à la page qui les a amenés à la page de connexion. Il doit également conserver des éléments tels que les variables transmises (c'est-à-dire l'intégralité du lien www.example.com/download_file?id=3)
Est-ce que quelqu'un sait comment faire cela?
Merci pour votre aide :-)
+1 voir aussi le premier lien pour une petite fonctionnalité pratique de flask pour faire autre chose bloc – unmounted
get_current_url() est flask.request.url –