我的烧瓶项目中有两个蓝图
1个帐户
2主要
但是我也有一个功能来检查用户的浏览器中是否存在会话
我需要将这个功能实现到我的两个蓝图中,它是一个全局应用功能
任何提示? 现在我只在我的两个蓝图视图中插入两次。
答案 0 :(得分:1)
你可以使用装饰。
import flask, flask.views
import functools
app = flask.Flask(__name__)
def login_required(method):
@functools.wraps(method)
def wrapper(*args, **kwargs):
if 'username' in flask.session:
return method(*args, **kwargs)
else:
flask.flash("A login is required to see the page!")
return flask.redirect(flask.url_for('index'))
return wrapper
class Account(flask.views.MethodView):
@login_required
他解释了如何制作装饰。
答案 1 :(得分:0)
Blueprint
与Flask
应用程序非常相似,您可以在两者中找到before_request
等方法。在你的情况下before_request
寻找解决方案。所以你可以扩展蓝图:
class MyBlueprint(Blueprint):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.before_request(self.do_something_before_request)
def do_something_before_request(self):
pass