Skip to content

Instantly share code, notes, and snippets.

@zztalker
Last active January 8, 2017 09:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save zztalker/9aa15857a7983c41964d519063e50967 to your computer and use it in GitHub Desktop.
Save zztalker/9aa15857a7983c41964d519063e50967 to your computer and use it in GitHub Desktop.
How to make own decorator to view in Flask
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