在开发中,某些方法的访问需要判断用户是否登录,或是检验其是否有权限访问。这里通常使用装饰器实现。
下面通过一个demo例子来演示如何进行权限验证。
- # -*- coding: utf-8 -*-
- # @File : 01-装饰器.py
- from functools import wraps
-
-
- def login_require(func):
- @wraps(func)
- def inner(*args, **kwargs):
- name = kwargs.get('name')
- if name:
- print('已登录')
- return func(*args, **kwargs)
- else:
- print('未登录')
-
- return inner
-
-
- @login_require
- def my_page(name=None):
- print('name:{}'.format(name))
- print('这是一个测试页面')
-
-
- my_page(name='小明')
login_require,通过检测其传入的参数中是否有携带有权限参数,在这里判断如果能取到name那么就认为是已登录状态,否则未登录my_page中的方法
name中是否有值判断是否登录
kwargs关键字参数取到值进行判断
args位置参数判断