使用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处理python编码问题
Mar 13 Python
Python实现爬取需要登录的网站完整示例
Aug 19 Python
Python标准库inspect的具体使用方法
Dec 06 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
详解python做UI界面的方法
Feb 27 Python
Pycharm新手教程(只需要看这篇就够了)
Jun 18 Python
Python DataFrame一列拆成多列以及一行拆成多行
Aug 06 Python
Django框架 Pagination分页实现代码实例
Sep 04 Python
python  logging日志打印过程解析
Oct 22 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
Python列表元素删除和remove()方法详解
Jan 04 Python
matplotlib grid()设置网格线外观的实现
Feb 22 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实现的获取URL信息的类
2007/01/02 PHP
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
2009/11/27 PHP
php垃圾代码优化操作代码
2010/08/05 PHP
解析在PHP中使用全局变量的几种方法
2013/06/24 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
简单谈谈 php 文件锁
2017/02/19 PHP
VBScript版代码高亮
2006/06/26 Javascript
javascript 兼容鼠标滚轮事件
2009/04/07 Javascript
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
工作中常用到的JS表单验证代码(包括例子)
2010/11/11 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
JS调用页面表格导出excel示例代码
2014/03/18 Javascript
js实现编辑div节点名称的方法
2014/12/17 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
2015/03/23 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
node操作mysql数据库实例详解
2017/03/17 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
jQuery实现的页面遮罩层功能示例【测试可用】
2017/10/14 jQuery
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
python网络编程学习笔记(一)
2014/06/09 Python
Python random模块用法解析及简单示例
2017/12/18 Python
使用python实现链表操作
2018/01/26 Python
Pycharm 设置自定义背景颜色的图文教程
2018/05/23 Python
python3.6使用urllib完成下载的实例
2018/12/19 Python
python实现flappy bird游戏
2018/12/24 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
2019/10/24 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
创意爱尔兰礼物:Creative Irish Gifts
2020/01/29 全球购物
土建专业大学生自荐信范文
2014/04/09 职场文书
超市仓管员岗位职责范本
2014/09/18 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书