使用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 相关文章推荐
Python 将RGB图像转换为Pytho灰度图像的实例
Nov 14 Python
Flask框架响应、调度方法和蓝图操作实例分析
Jul 24 Python
Windows下PyCharm安装图文教程
Aug 27 Python
python读取文本中的坐标方法
Oct 14 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
Jan 14 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
Python算法的时间复杂度和空间复杂度(实例解析)
Nov 19 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
Python读取分割压缩TXT文本文件实例
Feb 14 Python
python函数map()和partial()的知识点总结
May 26 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
Zend的Registry机制的使用说明
2013/05/02 PHP
php实现简单洗牌算法
2013/06/18 PHP
Thinkphp 空操作、空控制器、命名空间(详解)
2017/05/05 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
javascript搜索框点击文字消失失焦时文本出现
2014/09/18 Javascript
JS在一定时间内跳转页面及各种刷新页面的实现方法
2016/05/26 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
vue单个组件实现无限层级多选菜单功能
2018/04/10 Javascript
JavaScript 接口原理与用法实例详解
2020/05/12 Javascript
微信小程序 获取手机号 JavaScript解密示例代码详解
2020/05/14 Javascript
通过实例了解Nodejs模块系统及require机制
2020/07/16 NodeJs
如何通过JS实现日历简单算法
2020/10/14 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[02:25]专访DOTA2负责人Erik 国际邀请赛暂不会离开西雅
2014/07/21 DOTA
[38:21]2018DOTA2亚洲邀请赛3月30日 小组赛A组 LGD VS Newbee
2018/03/31 DOTA
[01:02:07]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
python PIL模块与随机生成中文验证码
2016/02/27 Python
利用Python读取txt文档的方法讲解
2018/06/23 Python
python绘制简单彩虹图
2018/11/19 Python
对python函数签名的方法详解
2019/01/22 Python
linux环境中没有网络怎么下载python
2019/07/07 Python
Django中自定义admin Xadmin的实现代码
2019/08/09 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
使用 Python 处理3万多条数据只要几秒钟
2020/01/19 Python
使用python的pyplot绘制函数实例
2020/02/13 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
End Clothing美国站:英国男士潮牌商城
2018/04/20 全球购物
课程改革实施方案
2014/03/16 职场文书
机械专业技术员求职信
2014/06/14 职场文书
辞职书格式样本
2015/02/26 职场文书
教师正风肃纪心得体会
2016/01/15 职场文书