一般我们的后台管理系统需要用户先登录才有权限访问页面内容,我们就要做个登录拦截器,在
flask
直接使用decorator
修饰符就可以
- 1、新建一个flask项目
- 2、在app.py文件中定义一个修饰符的类
#定义一个装饰器用于拦截用户登录
#func是使用该修饰符的地方是视图函数
def login_require(func):
def decorator(*args,**kwargs):
#现在是模拟登录,获取用户名,项目开发中获取session
username = flask.request.args.get('username')
#判断用户名存在且用户名是什么的时候直接那个视图函数
if username and username == 'admin':
return func(*args,**kwargs)
else:
#如果没有就重定向到登录页面
return flask.redirect("login")
return decorator
- 3、在函数视图中调用
#主页面
@app.route('/')
@login_require
def hello_world():
return u'我是主页面'
@app.route("/login/")
def login():
return u'请先登录'
- 4、在类视图中使用
class Page(views.MethodView):
decorators = [login_require]
def get(self):
return u'我是page页面'
def post(self):
return u'我是post方法'
app.add_url_rule('/page/',endpoint='page',view_func=Page.as_view('page'))
- 5、哪里需要拦截就在哪里使用
- 6、模拟登录下