mongosion
https://github.com/grasses/mongosion
An easy session module, writed by python base on pymongo using for tornado.py or web.py!
公司要我写个内部share平台,那就写吧,那就写了。(泪流满面 T_T)
平台基于python.tornado,以mongodb为数据库。
初次接触tornado,感觉比较陌生,T_T, 坑是有的,很多模块没有,session,log等。
那就写呗,那就写了。T_T说多都是泪。
Ox01.Installation
use pip
pip install mongosion
or source
wget https://pypi.python.org/packages/source/m/mongosion/mongosion-0.1.3.tar.gz
tar -zxvf mongosion-0.1.3.tar.gz
cd mongosion-0.10/
sudo python setup.py install
下面是关于宿主环境安装介绍,已安装的跳过
开发安装环境 Python 2.7.8,详细兼容性为知.....我只用过python27....
1、先安装tornado(我用的是tornado,用web.py啥的也一样)
pip
pip install
or source
wget http://github.com/downloads/facebook/tornado/tornado-2.0.tar.gz
tar xvzf tornado-2.0.tar.gz
cd tornado-2.0
python setup.py build
sudo python setup.py install
2、安装mongodb
给你个教程吧,太多了,题外话了。
mac 下安装mongodb
centos 下安装mongodb
反正不管用什么手段,安装完,启动。
启动(mac下):
sudo mongod
3、安装pymong(mongodb在python下地依赖包)
pymongo 官网
直接pip好了
pip install pymongo
插话:关于pymongo搜索有个很好教程。
Ox02.mongosion
mongosion包含两个类,基类SessionBase和派生类Session,基类主要负责mongodb数据库查询,派生类主要负责数据处理以及逻辑结构。
查找、保存原则:如果有返回数据,如果没有,创新新的session,此时记得更新cookie,模块只负责select, update, insert, delete.
get(),delete(),exist()这3个函数要提供session id
save() 要提供session数据内容(json),默认数据格式在setting里面设置
expired() 不需要参数
setting可以设置:
-
过期时间
-
是否自动删除过期
-
session内容自定义
mongosion give you 5 function:
get( session_id )
=> get session
delete( session_id )
=> remove session
save( session_id, {})
=> save sesssion
exist( session_id )
=> check session is existion
expired()
=> delete expired sessions
data type
{'_id':'', 'time':'', 'session': {'uid':'', 'status':'', ......} }
setting
setting = {
# mongodb setting
'host':'localhost',
'port': 27017,
'databse':'mongosion',
#session setting
'session_id': '',
'sessionExpires': 24*60*60,
'autoDeleteExpired': True, # clean expired sessions at every get
'secretKey':base64.b64encode(uuid.uuid4().bytes + uuid.uuid4().bytes),
'session' : { 'uid':'520', 'status':'useing', 'isLogin':False } # default type of data
}
源码查看
https://github.com/grasses/mongosion/blob/master/mongosion/__init__.py
Ox03.mongosion原理
how to work
mongosion.get(session_id)
mongosion.save(session_id, {'uid':'', 'isLogin': True})
Ox04.Warning
remember install pymongo && run mongodb
Ox05.License
=========================================
GPL
--by 小草
2014、08、28