使用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实现发送email的几种常用方法
Aug 18 Python
Python2.x版本中maketrans()方法的使用介绍
May 19 Python
pytorch 在sequential中使用view来reshape的例子
Aug 20 Python
python 函数的缺省参数使用注意事项分析
Sep 17 Python
在Python中使用filter去除列表中值为假及空字符串的例子
Nov 18 Python
Python FFT合成波形的实例
Dec 04 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
selenium 多窗口切换的实现(windows)
Jan 18 Python
python re模块匹配贪婪和非贪婪模式详解
Feb 11 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
Feb 26 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
python识别围棋定位棋盘位置
Jul 26 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
PHP 出现乱码和Sessions验证问题的解决方法!
2008/12/06 PHP
php foreach 参数强制类型转换的问题
2010/12/10 PHP
str_replace只替换一次字符串的方法
2013/04/09 PHP
php快速查找数据库中恶意代码的方法
2015/04/01 PHP
PHP生成树的方法
2015/07/28 PHP
PHP实现批量修改文件后缀名的方法
2015/07/30 PHP
谈谈你对Zend SAPIs(Zend SAPI Internals)的理解
2015/11/10 PHP
php实现的双色球算法示例
2017/06/20 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
jquery 多行滚动代码(附详细解释)
2010/06/17 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
js实现图片淡入淡出切换简易效果
2016/08/22 Javascript
JavaScript事件方法(实例讲解)
2017/06/27 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
在React 组件中使用Echarts的示例代码
2017/11/08 Javascript
vue实现手机端省市区区域选择
2019/09/27 Javascript
原生JS实现多条件筛选
2020/08/19 Javascript
解决ant Design Search无法输入内容的问题
2020/10/29 Javascript
Vue看了就会的8个小技巧
2021/01/21 Vue.js
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
解析Python编程中的包结构
2015/10/25 Python
Python读取MRI并显示为灰度图像实例代码
2018/01/03 Python
python3.7将代码打包成exe程序并添加图标的方法
2019/10/11 Python
Python高级property属性用法实例分析
2019/11/19 Python
python 普通克里金(Kriging)法的实现
2019/12/19 Python
详解html5页面 rem 布局适配方法
2018/01/12 HTML / CSS
伦敦著名的运动鞋综合商店:Footpatrol
2019/03/25 全球购物
LightInTheBox法国站:中国跨境电商
2020/03/05 全球购物
俄罗斯领先的移动和数字设备在线商店:Svyaznoy.ru
2020/12/21 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
应届大学毕业生找工作的求职信范文
2013/11/29 职场文书
教师研修随笔感言
2014/01/23 职场文书
学习十八大报告感言
2014/02/28 职场文书
2015年学校保卫部工作总结
2015/05/11 职场文书
node.js使用express-fileupload中间件实现文件上传
2021/07/16 Javascript