使用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 28 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
Feb 18 Python
python脚本设置超时机制系统时间的方法
Feb 21 Python
机器学习经典算法-logistic回归代码详解
Dec 22 Python
python 实现敏感词过滤的方法
Jan 21 Python
Python读写文件基础知识点
Jun 10 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
PyCharm第一次安装及使用教程
Jan 08 Python
Jupyter Notebook 文件默认目录的查看以及更改步骤
Apr 14 Python
Anaconda配置pytorch-gpu虚拟环境的图文教程
Apr 16 Python
Python读取ini配置文件传参的简单示例
Jan 05 Python
据Python爬虫不靠谱预测可知今年双十一销售额将超过6000亿元
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
饭制《星际争霸》Mod:优化游戏机制 增加新单位
2017/07/02 星际争霸
PHP闭包实例解析
2014/09/08 PHP
详谈PHP文件目录基础操作
2014/11/11 PHP
yii通过小物件生成view的方法
2016/10/08 PHP
PHP版单点登陆实现方案的实例
2016/11/17 PHP
JS解密入门之凭直觉解
2008/06/25 Javascript
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
详解JavaScript数组的操作大全
2015/10/19 Javascript
Javascript之BOM(window对象)详解
2016/05/25 Javascript
jQuery EasyUI ProgressBar进度条组件
2017/02/28 Javascript
React如何将组件渲染到指定DOM节点详解
2017/09/08 Javascript
Chart.js 轻量级HTML5图表绘制工具库(知识整理)
2018/05/22 Javascript
mac上配置Android环境变量的方法
2018/07/08 Javascript
vue添加axios,并且指定baseurl的方法
2018/09/19 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
用python读写excel的方法
2014/11/18 Python
深入理解Python中的元类(metaclass)
2015/02/14 Python
python中关于for循环的碎碎念
2017/06/30 Python
python导出hive数据表的schema实例代码
2018/01/22 Python
pygame游戏之旅 载入小车图片、更新窗口
2018/11/20 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python实现栈的方法详解【基于数组和单链表两种方法】
2020/02/22 Python
Keras loss函数剖析
2020/07/06 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
Java面试题汇总
2015/12/06 面试题
播音主持专业个人自我评价
2014/01/09 职场文书
2014端午节活动策划方案
2014/01/27 职场文书
超市活动计划书
2014/04/24 职场文书
幼儿发展评估方案
2014/06/11 职场文书
解除劳动合同证明书模板
2014/11/20 职场文书
2015高三毕业寄语赠言
2015/02/27 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
编写python程序的90条建议
2021/04/14 Python