# @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
上下文,能够用来处理一些相应的数据。函数