Flask(13)-视图-类视图使用装饰器
函数装饰器
# 函数装饰器
from functools import wraps
# 创建一个用户装饰器
def login_required(func):
@wraps(func)
def wrapper(*args,**kwargs):
username = request.args.get("username")
if username == "123":
return func(*args,**kwargs)
else:
return "请先登录!"
return wrapper
# 在路由下面添加装饰器,装饰器放到route上面是不起任何作用的
@app.route("/index/")
@login_required
def index():
return "index view"
# 浏览器访问 index是,则会出现“请先登录”
# 在后面跟上参数 /index/?username=123 是,则是正常访问index,显示 index view
类装饰器
from functools import wraps
# login_required 装饰器
def login_required(func):
@wraps(func)
def wrapper(*args, **kwargs):
username = request.args.get("username")
if username == "123":
return func(*args, **kwargs)
else:
return "请先登录!"
return wrapper
# index类
class IndexView(views.MethodView):
# 导入使用 login_required装饰器
decorators = [login_required]
def get(self):
return "Index View"
# 注册URL
app.add_url_rule("/index/", view_func=IndexView.as_view("index"))
# 如果直接访问/index/则会出现 “请先登录”
# 如果访问/index/?username=123 则是正常访问index,显示Index View
正文到此结束
评论
登录后才能发表评论 登录/注册
0评论