在网站的实际使用中,通常会有一些界面,需要在显示前,进行登录验证,
使用装饰器是一种方法,即:
首先设置好装饰器:
一、返回json串
from common import BaseResponse
import json
def auth_login_json(func):
def inner(self,*args,**kwargs):
if not self.session['is_login']:
ret = BaseResponse()
ret.summary = "auth failed"
self.write(json.dumps(ret.__dict__))
return
func(self,*args,**kwargs)
return inner
二、直接跳转
from config import LOGIN_URL
def auth_login_redirect(func):
def inner(self,*args,**kwargs):
if not self.session['is_login']:
self.redirect(LOGIN_URL)
return
func(self,*args,**kwargs)
return inner
然后,在handler中使用:
class ThumbUpHandler(BaseHandler):
@auth_login_json
def post(self, *args, **kwargs):
# 返回对象
ret = BaseResponse()
# 获取提交的信息:user_id、news_id
try:
ret.status = 1
ret.message = get_args(self)
User_ThumbUp_News().thumb_up(ret.message)
except:
print('将错误信息写入log日志!')
self.write(json.dumps(ret.__dict__))
最后,在ajax中进行设置:
function thumbUP_success(ths,response){
if(response.status == 1){
if(response.message.status==1){
$.tipsBox({
obj: $(ths),
str: "+1",
callback: function(){ window.location.reload();},
});
}else{
$.tipsBox({
obj: $(ths),
str: "-1",
color:'gray',
callback: function(){ window.location.reload();},
});
};
}else{
$("#login").show();
};
}
浙公网安备 33010602011771号