Last active
January 8, 2017 09:14
-
-
Save zztalker/9aa15857a7983c41964d519063e50967 to your computer and use it in GitHub Desktop.
How to make own decorator to view in Flask
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from functools import wraps | |
def islogged(func): | |
# нужен декоратор на декорируемую функцию, т.к. app.route - составляет таблицу view - и ему нужны уникальные ссылки на функции. | |
# Если не добавить подобный декоратор, то ссылки будут одинаковые - на функцию decorated_view | |
# wraps - использует создание экземпляра объекта partial - (каждый экземпляр обладает уникальной ссылкой и ведёт себя как функция) | |
# https://docs.python.org/3/library/functools.html#functools.partial | |
@wraps(func) | |
def decorated_view(*args, **kwargs): | |
if not session.get('logged_in'): | |
return render_template('login.html') | |
return func(*args, **kwargs) | |
return decorated_view | |
@app.route('/') | |
@islogged | |
def index(): | |
return render_template("index.html", title='Главная', FIO=session.get('FIO'), username=session.get('username'), | |
glavnaya=active, Is_admin=session.get('Is_admin'), email=session.get('email')) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment