使用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学习笔记(一)(基础入门之环境搭建)
Jun 05 Python
Python求解平方根的方法
Mar 11 Python
在Python中使用全局日志时需要注意的问题
May 06 Python
python删除过期文件的方法
May 29 Python
Python的Socket编程过程中实现UDP端口复用的实例分享
Mar 19 Python
Python中的字符串替换操作示例
Jun 27 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
python找出完数的方法
Nov 12 Python
python面试题之列表声明实例分析
Jul 08 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
Python爬虫制作翻译程序的示例代码
Feb 22 Python
健身房被搭讪?用python写了个小米计时器助人为乐
Jun 08 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
全国FM电台频率大全 - 3 河北省
2020/03/11 无线电
PHP中$_SERVER的详细参数与说明介绍
2013/10/26 PHP
详解php中生成标准uuid(guid)的方法
2019/04/28 PHP
详解将数据从Laravel传送到vue的四种方式
2019/10/16 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
JS获取并操作iframe中元素的方法
2013/03/21 Javascript
简略说明Javascript中的= =(等于)与= = =(全等于)区别
2013/04/16 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
jquery原理以及学习技巧介绍
2015/11/11 Javascript
基于jQuery实现select下拉选择可输入附源码下载
2016/02/03 Javascript
AngularJs基本特性解析(一)
2016/07/21 Javascript
AngularJS指令详解及示例代码
2016/08/16 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
使用Vue Composition API写出清晰、可扩展的表单实现
2020/06/10 Javascript
JS中循环遍历数组的四种方式总结
2021/01/23 Javascript
python使用urllib模块开发的多线程豆瓣小站mp3下载器
2014/01/16 Python
Phantomjs抓取渲染JS后的网页(Python代码)
2016/05/13 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python中实现控制小数点位数的方法
2019/01/24 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
Python约瑟夫生者死者小游戏实例讲解
2021/01/04 Python
python 将Excel转Word的示例
2021/03/02 Python
CSS3动画效果回调处理详解
2014/12/10 HTML / CSS
英国领先的露营和露营车品牌之一:OLPRO
2019/08/06 全球购物
领导的自我鉴定
2013/12/28 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
个人委托书范文
2015/01/28 职场文书
《中国古代诗歌散文欣赏》高中语文教材
2019/08/20 职场文书
python图像处理基本操作总结(PIL库、Matplotlib及Numpy)
2021/06/08 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL