tornado属于轻量级,异步,高并发的代名词了,虽然开发网站的速度比较慢,但是大多数同学开发后端服务,还都是喜欢使用tornado,今天给大家分享一下,tornado中自己做session时,写装饰器的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#coding=utf-8
import models
from tornado.web import HTTPError
def check_login(func):
def _wrapper(self,*args, **kwargs):
session_id = self.request.headers.get('Session_id',None)
user_id = self.request.headers.get('User_id',None)
session_data = models.session.query(models.Session).filter_by(user_id=user_id).first()
if session_id:
ret = func(self,*args, **kwargs)
if session_data.session_id == session_id:
return ret
else:
raise HTTPError(403)
else:
raise HTTPError(403)
return _wrapper
|