使用beaker让Facebook的Bottle框架支持session功能


Posted in Python onApril 23, 2015

bottle是一个小型web框架,很小只有一个文件,但功能确很强大,学起来也简单,简单和小巧的同时也有很多不足,某些功能支持还不是很完善,比如session.但是也有它自身的好处,我们可以自己或使用别的模块来扩展它,不像django,很强大,但是想要进一步扩展的时候确无从下手.我们可以把非常简单而强大的bottle自己动手将它变得更加强大和完善.

bottle小巧支持cookie但是不支持session.为了安全起见我们有时候希望使用的session.我们可以使用中间件beaker来扩展bottle,使我们的bottle应用支持session.废话不多说.首先beaker不是内置模块,我们首先来安装它.当然你可以网上下包手动安装,我们使用最简单的:

easy_install beaker

没有easy_install这个命令?google吧,装了之后还是没有,如过时win的话检查环境变量,将Python安装目录下的Scripts目录添加到环境变量.

安装好后我们如何使用它,下面一段带面是使用的:

#!/usr/bin/env python
from bottle import route, default_app, run, request
from beaker.middleware import SessionMiddleware

session_opts = {
        'session.type':'file',
        'session.cookei_expires':300,
        'session.data_dir':'./sessions',
        'sessioni.auto':True
        }

@route('/test')
def test():
  s = request.environ.get('beaker.session')
  s['test'] = s.get('test', 0) + 1
  s.save()
  return 'Test conter: %d' % s['test']

app = default_app()
app = SessionMiddleware(app, session_opts)
run(app=app)

运行这段代码,会提示:

Bottle server starting up (using WSGIRefServer())...
Listening on http://127.0.0.1:8080/
Hit Ctrl-C to quit.

现在打开浏览器访问http://127.0.0.1:8080/test

不断刷新就会发现数值不断在增大.说明我们的session已经正常工作了

Python 相关文章推荐
pymongo实现控制mongodb中数字字段做加法的方法
Mar 26 Python
django实现分页的方法
May 26 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
Jul 17 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
通过python将大量文件按修改时间分类的方法
Oct 17 Python
只需7行Python代码玩转微信自动聊天
Jan 27 Python
详解python selenium 爬取网易云音乐歌单名
Mar 28 Python
Python GUI学习之登录系统界面篇
Aug 21 Python
python能做什么 python的含义
Oct 12 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
基于python 凸包问题的解决
Apr 16 Python
Python3实现个位数字和十位数字对调, 其乘积不变
May 03 Python
用Python编写脚本使IE实现代理上网的教程
Apr 23 #Python
在Python的Bottle框架中使用微信API的示例
Apr 23 #Python
最基础的Python的socket编程入门教程
Apr 23 #Python
利用Python实现简单的相似图片搜索的教程
Apr 23 #Python
以911新闻为例演示Python实现数据可视化的教程
Apr 23 #Python
Python中优化NumPy包使用性能的教程
Apr 23 #Python
python通过自定义isnumber函数判断字符串是否为数字的方法
Apr 23 #Python
You might like
php随机输出名人名言的代码
2012/10/07 PHP
php设计模式之单例模式代码
2016/06/11 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
用Jquery重写windows.alert方法实现思路
2013/04/03 Javascript
js控制浏览器全屏示例代码
2014/02/20 Javascript
使用GruntJS构建Web程序之安装篇
2014/06/04 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
深入理解JavaScript中为什么string可以拥有方法
2016/05/24 Javascript
JavaScript  event对象整理及详细介绍
2016/10/10 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
Bootstrap CSS布局之表单
2016/12/17 Javascript
微信小程序自定义扫码功能界面的实现代码
2020/07/02 Javascript
[04:04]显微镜下的DOTA2第六期——电影级别的华丽团战
2014/06/20 DOTA
python字典键值对的添加和遍历方法
2016/09/11 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
python利用标准库如何获取本地IP示例详解
2017/11/01 Python
对python捕获ctrl+c手工中断程序的两种方法详解
2018/12/26 Python
Python如何基于selenium实现自动登录博客园
2019/12/16 Python
在python里使用await关键字来等另外一个协程的实例
2020/05/04 Python
Django Form设置文本框为readonly操作
2020/07/03 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
细说CSS3中box属性中的overflow-x属性和overflow-y属性值的效果
2014/07/21 HTML / CSS
HTML5页面直接调用百度地图API获取当前位置直接导航目的地的实现代码
2018/03/02 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
智能电子秤、手表和健康监测仪:Withings(之前为诺基亚健康)
2018/10/30 全球购物
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
Footshop罗马尼亚:最好的运动鞋选择
2019/09/10 全球购物
婚礼主持词
2014/03/13 职场文书
三年级评语大全
2014/04/23 职场文书
意向协议书范本
2014/04/23 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
2014年销售工作总结
2014/12/01 职场文书
交通事故和解协议书
2015/01/27 职场文书
南京南京观后感
2015/06/02 职场文书
灵能百分百第三季什么时候来?
2022/03/15 日漫