1

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

process

mongosion.get(session_id)

process

mongosion.save(session_id, {'uid':'', 'isLogin': True})

process

Ox04.Warning

remember install pymongo && run mongodb


Ox05.License

=========================================

GPL

--by 小草

2014、08、28


夏日小草
2.2k 声望139 粉丝

[链接]