# @app.before_request # def before_request(): # user = current_user # if user is not None and user.is_authenticated(): # userinfo = LoginUserManager.get(int(user.get_id())) # print (userinfo.Role) # #只對請求爲admin的進行處理 # if request.path.startswith("/admin") : # #從session中獲取用戶的角色,根據用戶角色和URL從數據庫中查詢數據 # print(request.path) # pass @app.context_processor def prepare_menu_data(): user = current_user if user is not None and user.is_authenticated(): MenuData = MenuManager.getCanVistMenuData( user.Role) else: MenuData = MenuManager.getMenuData(1) return dict(adminmenudata=MenuData)
在FLASK的登陸插件LOGIN中,用戶的信息是存儲在current_user中的,在後續的處理中可使用此方法來獲取用戶的信息,來完成一些相應的處理。python
context_processor :數據庫
環境處理器的做用是把新的變量自動引入模板環境中。環境處理器在模板被渲染前運行, 所以能夠把新的變量自動引入模板環境中。它是一個函數,返回值是一個字典。在應用的 全部模板中,這個字典將與模板環境合併:session
before_request:app
上下文,能夠用來處理一些相應的數據。函數