bottle-session 0.2 : Python Package Index
bottle-session 0.2 : Python Package Index
bottle-session 0.2
Redis based sessions for bottle.
Latest Version: 0.3
- Bottle Sessions with Redis
- ==========================
- Bottle_session is a session manager for the Bottle microframework that uses a
- cookie to maintain your web session and stores a hash associated with that
- cookie using the redis key-value store. It is designed as a simple Bottle
- plugin.
- Installation
- ------------
- Install using either pip or easy_install:
- $ pip install bottle-session
- or you can download the latest version from bitbucket:
- $ git clone https://devries@bitbucket.org/devries/bottle-session.git
- $ cd bottle-session
- $ python setup.py install
- Requirements
- ------------
- In order to use bottle-session you must have the both the redis and of course
- bottle modules installed. I recommend also installing pycrypto, although it is
- not required. If pycrypto is installed, then the pycrypto random number
- generator is used to generate session cookies, otherwise python's internal
- random number generator is used.
- Using Bottle-session
- --------------------
- The first requirement is that you import the bottle_session module:
- :::python
- import bottle_session
- import bottle
- Next, initialize the plugin:
- :::python
- app = bottle.app()
- plugin = bottle_session.SessionPlugin(cookie_lifetime=600)
- app.install(plugin)
- The `cookie_lifetime` parameter is the lifetime of the cookie in seconds, if
- the lifetime is set to **None** it will last 1 week. The `SessionPlugin` class
- initializer takes several optional parameters:
- - `host` is the host for the redis instance. It defaults to `localhost`.
- - `port` is the port for the redis instance. It defaults to `6379`.
- - `db` is the redis database number. It defaults to `0`.
- - `cookie_name` is the name of the session cookie. It defaults to
- `bottle.session`.
- - `keyword` is the plugin keyword. It defaults to `session`.
- To use the plugin, just add the keyword (`session` by default) to the routed
- method:
- :::python
- @bottle.route('/')
- def index(session):
- user_name = session.get('name'):
- if user_name is not None:
- return "Hello, %s"%user_name
- else:
- return "I don't recognize you."
- @bottle.route('/set/:user_name')
- def set_name(session,user_name=None):
- if user_name is not None:
- session['name']=user_name
- return "I recognize you now."
- else:
- return "What was that?"
- bottle.debug(True)
- bottle.run(app=app,host='localhost',port=8888)
- In this example you can set the `name` property of the session cookie to Chris
- by visiting the `http://localhost:8888/set/Chris` and then that value is
- retrieved when you visit `http://localhost:8888/`.
- Using Bottle-session and Bottle-redis
- -------------------------------------
- If you are using redis for sessions you are likely using redis to store other
- data as well, and likely use the bottle-redis plugin. You can use both plugins
- together, and you can even get them to use the same connection pool.
- Initialize them by creating a connection pool which you attach to each plugin
- object before installing them into the bottle application as shown below:
- :::python
- #!/usr/bin/env python
- import bottle_session
- import bottle_redis
- import bottle
- import redis
- from datetime import datetime
- app = bottle.app()
- session_plugin = bottle_session.SessionPlugin()
- redis_plugin = bottle_redis.RedisPlugin()
- connection_pool = redis.ConnectionPool(host='localhost', port=6379)
- session_plugin.connection_pool = connection_pool
- redis_plugin.redisdb = connection_pool
- app.install(session_plugin)
- app.install(redis_plugin)
- @bottle.route('/')
- def index(session,rdb):
- rdb.incr('visitors')
- visitor = rdb.get('visitors')
- last_visit = session['visit']
- session['visit'] = datetime.now().isoformat()
- return 'You are visitor %s, your last visit was on %s'%(visitor,last_visit)
- bottle.debug(True)
- bottle.run(app=app,host='localhost',port=8888)
- Acknowledgments
- ---------------
- Thanks to Marcel Hellkamp and the bottle community for the framework and to
- Sean M. Collins whose bottle-redis package in bottle-extras served as the
- inspiration for this bottle plugin.
bottle-session 0.2 : Python Package Index的更多相关文章
- django-cookieless 0.7 : Python Package Index
django-cookieless 0.7 : Python Package Index django-cookieless 0.7 Download django-cookieless-0.7.ta ...
- Ghost.py 0.1b3 : Python Package Index
Ghost.py 0.1b3 : Python Package Index Ghost.py 0.1b3 Download Ghost.py-0.1b3.tar.gz Webkit based web ...
- pyrailgun 0.24 : Python Package Index
pyrailgun 0.24 : Python Package Index pyrailgun 0.24 Download pyrailgun-0.24.zip Fast Crawler For Py ...
- qrcode 4.0.4 : Python Package Index
qrcode 4.0.4 : Python Package Index qrcode 4.0.4 Download qrcode-4.0.4.tar.gz QR Code image generato ...
- bottle-session 0.3 : Python Package Index
bottle-session 0.3 : Python Package Index bottle-session 0.3
- graphterm 0.40.1 : Python Package Index
graphterm 0.40.1 : Python Package Index graphterm 0.40.1 Downloads ↓ A Graphical Terminal Interface ...
- Beaker 1.6.4 : Python Package Index
Beaker 1.6.4 : Python Package Index Beaker 1.6.4 Download Beaker-1.6.4.tar.gz A Session and Caching ...
- Install OpenCV 3.0 and Python 2.7+ on OSX
http://www.pyimagesearch.com/2015/06/15/install-OpenCV-3-0-and-Python-2-7-on-osx/ As I mentioned las ...
- Install OpenCV 3.0 and Python 2.7+ on Ubuntu
为了防止原文消失或者被墙,转载留个底,最好还是去看原贴,因为随着版本变化,原贴是有人维护升级的 http://www.pyimagesearch.com/2015/06/22/install-Open ...
随机推荐
- win7 x64 驱动
原文:win7 x64 驱动 从x86转x64 1.编译环境要为x64 2.修改inf文件 [Manufacturer] %MfgName%=Mfg0,NT,NTia64,NTAMD64 [Mfg0] ...
- jsp中forward和redirect的区别(转)
一.调用方式 我们知道,在servlet中调用转发.重定向的语句如下: request.getRequestDispatcher("new.jsp").forward(reques ...
- linux配置nfs服务
简单介绍: unix/linux系统一种远程文件文件夹共享的服务,能够把某一个远程的文件文件夹共享到本地,进而像操作本地文件一样,操作这个远程的文件夹. 比如:a主机作为服务端,共享出来test1这个 ...
- if语句求三个数中最大的
Console.WriteLine("请输入第一个数:"); int a = Convert.ToInt32( Console.ReadLine()); Console.Write ...
- MYSQL - php 使用 localhost 无法连接数据库
php 使用 localhost 无法连接数据库,而使用127.0.0.1却能连接成功. 可能原因: 系统hosts文件未提供127.0.0.1到localhost的解析.解决方法(以win7系统为例 ...
- 解决 Xcode7 中多个模拟器的办法
转自: http://www.oschina.net/code/snippet_196012_50574 1.关闭xcode 2.终端输入 sudo killall -9 com.apple.Core ...
- Oracle同义词 synonyms
Oracle中的同义词: 总结:简单的一句话,Oracle中不同用户的表一般都只能够自己的所属的用户可以用,如果不想通过授权的方式授权给其他用户使用,那么创建表的时候在表名的前面加上 synonyms ...
- 使用ownCloud在Linux安装你的个人云服务
ownCloud是一个免费开源的软件,用于为分享文件,日历,联系人,书签和个人音频/视频.非常容易安装和管理. 前提 在这篇教程里我使用CentOS 6.5 minimal server来安装ownC ...
- WebApp模版并运行
WebApp模版并运行 ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行 核心框架 ASP.NET Core APP 创建与运行 总结 之前两篇文章简析.NET Core 以及与 ...
- 使用Maven打包项目并上传到Linux服务器
Maven打包: 项目右键Run as-->Maven build...--> 出来下面的界面,注意红色部分的填写,Goals填写package表示打包,下面的Skip Tests表示打 ...