python装饰器模式的案例
时间: 2023-05-23 09:01:52 浏览: 114
Python的设计模式学习案例
一个常见的 python 装饰器模式的案例是实现登录验证功能。我们可以定义一个装饰器函数,用于判断用户是否已经登录。如果没有登录,就跳转到登录页面;如果已经登录,则执行原来的函数。下面是一个简单的示例代码:
```python
def login_required(func):
def wrapper(*args, **kwargs):
if not current_user.is_authenticated:
return redirect(url_for('login'))
return func(*args, **kwargs)
return wrapper
@app.route('/profile')
@login_required
def profile():
return 'Welcome to your profile page'
```
在这个例子中,我们定义了一个 `login_required` 装饰器函数,它接收一个函数作为参数,在函数执行之前先进行登录验证。如果验证失败,就跳转到登录页面;如果验证成功,则执行原来的函数。我们将 `login_required` 装饰器应用到了 `profile` 视图函数上,这样就可以保证只有已登录用户才能访问该页面。
阅读全文