使用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 文件操作实现代码
Oct 07 Python
Python写的服务监控程序实例
Jan 31 Python
python中is与双等于号“==”的区别示例详解
Nov 21 Python
详解如何利用Cython为Python代码加速
Jan 27 Python
对pandas读取中文unicode的csv和添加行标题的方法详解
Dec 12 Python
ZABBIX3.2使用python脚本实现监控报表的方法
Jul 02 Python
python3 自动识别usb连接状态,即对usb重连的判断方法
Jul 03 Python
关于python中密码加盐的学习体会小结
Jul 15 Python
Python SELENIUM上传文件或图片实现过程
Oct 28 Python
python 实现多维数组转向量
Nov 30 Python
利用Python实现自动扫雷小脚本
Dec 17 Python
Python中的变量与常量
Nov 11 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作的文本留言本的例子(三)
2006/10/09 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
用javascript getComputedStyle获取和设置style的原理
2008/10/10 Javascript
iframe里使用JavaScript控制主页转向的方法
2015/04/03 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
AngularJS过滤器filter用法实例分析
2016/11/04 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
nodejs+websocket实时聊天系统改进版
2017/05/18 NodeJs
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
jQuery实现标签子元素的添加和赋值方法
2018/02/24 jQuery
JS中的回调函数实例浅析
2018/03/21 Javascript
layui实现点击按钮给table添加一行
2018/08/10 Javascript
详解Vue webapp项目通过HBulider打包原生APP(vue+webpack+HBulider)
2019/02/02 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
Vue组件间通信 Vuex的用法解析
2019/08/05 Javascript
Vue中使用Echarts仪表盘展示实时数据的实现
2020/11/01 Javascript
[01:31]DOTA2上海特级锦标赛 SECRET战队完整宣传片
2016/03/16 DOTA
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
使用 Python 获取 Linux 系统信息的代码
2014/07/13 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
Python中一行和多行import模块问题
2018/04/01 Python
python 多进程和协程配合使用写入数据
2020/10/30 Python
一个基于canvas的移动端图片编辑器的实现
2020/10/28 HTML / CSS
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
周鸿祎:教你写创业计划书
2013/12/30 职场文书
残疾人创业典型事迹
2014/02/01 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
反邪教警示教育方案
2014/05/13 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
2015年世界艾滋病日活动总结
2015/03/24 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
苹果发布了MagSafe固件更新,可以不外接电源实现最高7.5W充电
2022/04/21 数码科技