使用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在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
Python 爬虫多线程详解及实例代码
Oct 08 Python
python2.7到3.x迁移指南
Feb 01 Python
python实现mysql的读写分离及负载均衡
Feb 04 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
Redis使用watch完成秒杀抢购功能的代码
May 07 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
Python中list的交、并、差集获取方法示例
Aug 01 Python
np.random.seed() 的使用详解
Jan 14 Python
Anaconda3+tensorflow2.0.0+PyCharm安装与环境搭建(图文)
Feb 18 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
May 20 Python
python中的yield from语法快速学习
Nov 06 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
模拟SQLSERVER的两个函数:dateadd(),datediff()
2006/10/09 PHP
PHP+APACHE实现用户论证的方法
2006/10/09 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
作为PHP程序员你要知道的另外一种日志
2018/07/30 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
Yii 框架入口脚本示例分析
2020/05/19 PHP
浅谈JavaScript 框架分类
2014/11/10 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
巧用数组制作图片切换js代码
2016/11/29 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
2017/01/11 Javascript
利用Node.js编写跨平台的spawn语句详解
2017/02/12 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
详解vue数组遍历方法forEach和map的原理解析和实际应用
2018/11/15 Javascript
angular中两种表单的区别(响应式和模板驱动表单)
2018/12/06 Javascript
微信小程序获取用户绑定手机号方法示例
2019/07/21 Javascript
Node 代理访问的实现
2019/09/19 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
vue实现PC端分辨率适配操作
2020/08/03 Javascript
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python的numpy库中将矩阵转换为列表等函数的方法
2018/04/04 Python
Python import与from import使用及区别介绍
2018/09/06 Python
python将图片转base64,实现前端显示
2020/01/09 Python
python函数定义和调用过程详解
2020/02/09 Python
Python qrcode 生成一个二维码的实例详解
2020/02/12 Python
pytorch 移动端部署之helloworld的使用
2020/10/30 Python
超市中秋节促销方案
2014/03/21 职场文书
优秀毕业生的求职信
2014/07/21 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
青年志愿者活动方案
2014/08/17 职场文书
2015年个人招商工作总结
2015/04/25 职场文书
2015年全国助残日活动方案
2015/05/04 职场文书
Python文件的操作示例的详细讲解
2021/04/08 Python
Golang 切片(Slice)实现增删改查
2022/04/22 Golang