没有合适的资源?快使用搜索试试~ 我知道了~
本文研究的主要是Python使用装饰器进行django开发的相关内容,具体如下。 装饰器可以给一个函数,方法或类进行加工,添加额外的功能。 在这篇中使用装饰器给页面添加session而不让直接访问index,和show。在views.py中 def index(request): return HttpResponse('index') def show(request): return HttpResponse('show') 这样可以直接访问index和show,如果只允许登陆过的用户访问index和show,那么就需修改代码 def index(request):
资源推荐
资源详情
资源评论
Python使用装饰器进行使用装饰器进行django开发实例代码开发实例代码
本文研究的主要是Python使用装饰器进行django开发的相关内容,具体如下。
装饰器可以给一个函数,方法或类进行加工,添加额外的功能。
在这篇中使用装饰器给页面添加session而不让直接访问index,和show。在views.py中
def index(request):
return HttpResponse('index')
def show(request):
return HttpResponse('show')
这样可以直接访问index和show,如果只允许登陆过的用户访问index和show,那么就需修改代码
def index(request):
if request.session.get('username'):
return HttpResponse('index')
else:
return HttpResponse('login')<br data-filtered="filtered">
def show(request):
if request.session.get('username'):
return HttpResponse('show')
else:
return HttpResponse('login')
这样可以实现限制登陆过的用户访问功能,但是代码中也出现了许多的相同部分,于是可以把这些相同的部分写入一个函数这样可以实现限制登陆过的用户访问功能,但是代码中也出现了许多的相同部分,于是可以把这些相同的部分写入一个函数
中,用这样一个函数装饰中,用这样一个函数装饰index和和show。这样的函数就是装饰器。这样的函数就是装饰器。
def decorator(main_func):
def wrapper(request): #index,show中是一个参数,所以在wrapper中也是一个参数
if request.session.get('username'):
return main_func(request)
else:
return HttpResponse('login')
return wrapper
@decorator
def index(request):
return HttpResponse('index')
def show(request):
return HttpResponse('show')
这样在视图函数中只要是一个参数就可以通过decorator函数装饰,如果有两个参数就需要修改装饰器
def decorator(main_func):
def wrapper(request):
if request.session.get('username'):
return main_func(request)
else:
return HttpResponse('login')
return wrapper
def decorator1(main_func):
def wrapper(request,page):
if request.session.get('username'):
return main_func(request,page)
else:
return HttpResponse('login')
return wrapper
@decorator
def index(request):
return HttpResponse('index')
@decorator1
def show(request,page):
return HttpResponse('show')
资源评论
weixin_38519234
- 粉丝: 12
- 资源: 983
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功