1、检测登录状态
base.py
def checkLogin(func): """ 查看session值用来判断用户是否已经登录 :param func: :return: """ def warpper(request,*args,**kwargs): if request.session.get('username', False): return func(request, *args, **kwargs) else: return HttpResponse('/login') return warpper
index.py:
from proApp import models, article, base @base.checkLogin def index(request): dict = { "article_list": article.getArticle(), } return render(request, 'index.html',dict)
1报错:
The view proApp.base.warpper didn't return an HttpResponse object. It returned None instead.
解决办法: 判断用户session后,一定要return返回值
2、登录检查成功,路由未被更改,页面未跳转
解决办法: redirect(‘跳转路径和名称‘)方法,页面跳转
from django.shortcuts import render,render_to_response,redirect def checkLogin(func): """ 查看session值用来判断用户是否已经登录 :param func: :return: """ def warpper(request,*args,**kwargs): if request.session.get('username', False): return func(request, *args, **kwargs) else: return redirect('/login') return warpper
注意:render与redirect两点区别:
1、render返回一个登陆成功后的页面,刷新该页面将回复到跳转前页面。而redirect则不会
2、render返回一个登陆成功页面,不会经过url路由分发系统,也就是说,不会执行跳转后url的试图函数。这样,返回的页面渲染不成功;而redirect是跳转到指定页面,当登陆成功后,会在url路由系统进行匹配,如果有存在的映射函数,就会执行对应的映射函数。
补充知识:Django中的中间件与类视图
类视图
函数视图:以函数的方式定义的视图称为函数视图
类视图:以类的方式定义的视图称为类视图
代码可读性好
类视图相对于函数视图有更高的复用性
因此大部分视图都使用类进行封装。
from django.views import View class ClassView(View): """类视图的介绍""" def get(self, request): """get请求方法""" print('get请求方法进次函数') return HttpResponse('get请求方法') def post(self, request): """post请求方法进此函数""" print('post请求方法') return HttpResponse('post请求方法') """ 在url中配置 """ urlpatterns = [ url(r"^classview/$", views.ClassView.as_view()) #ClassView是一个类 需要调用Django自带的as_view方法转换为view ]
中间件
中间件
Django中的中间件是一个轻量级、底层的插件系统,可以介入Django的请求和响应处理过程,修改Django的输入或输出。中间件的设计为开发者提供了一种无侵入式的开发方式,增强了Django框架的健壮性。
我们可以使用中间件,在Django处理视图的不同阶段对输入或输出进行干预。
#先在子应用文件下新建(自定义).py文件 # 自定义中间键 def outer(fuc): print('调用前') def inner(*args, **kwargs): print('执行前') data = fuc(*args, **kwargs) print(' 执行后') return data return inner #2. settings.py的middleware下面加入自定义的中间件 'user1.middlewares.outer' # 自定义中间件
以上这篇django 装饰器 检测登录状态操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
django,装饰器,登录状态
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新日志
- 孙悦.1996-伙伴【正大国际】【WAV+CUE】
- 纪钧瀚《钢琴阅读时光 雨中书店聆听轻音乐》[FLAC/分轨][399.62MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[320K/MP3][87.4MB]
- 证声音乐图书馆《走向自然 疗心爵士乐》[FLAC/分轨][184.94MB]
- 陈慧娴.2018-Priscilla-Ism演唱会3CD(2024环球红馆40复刻系列)【环球】【WAV+CUE】
- 郑秀文.1999-我应该得到(国)【华纳】【WAV+CUE】
- 陈家慧.2011-钢琴酒吧2CD【龙吟唱片】【WAV+CUE】
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[320K/MP3][45.01MB]
- 证声音乐图书馆《雨季 蓝调吉他 Rainy Blues》[FLAC/分轨][109.13MB]
- 赞多《序章》[320K/MP3][45.54MB]
- 许巍.2004-每一刻都是崭新的【步升大风】【WAV+CUE】
- 群星.2024-四方馆影视原声带【韶愔音乐】【FLAC分轨】
- 陈雷.1997-安锁咧【金圆唱片】【WAV+CUE】
- 关淑怡.2013-MY.FAVORITE.SK.3CD【环球】【WAV+CUE】
- Sweety.2006-花言乔语【丰华】【WAV+CUE】