使用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使用7z解压软件备份文件脚本分享
Feb 21 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
python用户管理系统
Mar 13 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
python 将list转成字符串,中间用符号分隔的方法
Oct 23 Python
Django Rest framework之认证的实现代码
Dec 17 Python
Python实现的多进程拷贝文件并显示百分比功能示例
Apr 09 Python
Django Sitemap 站点地图的实现方法
Apr 29 Python
Django 解决distinct无法去除重复数据的问题
May 20 Python
Scrapy中如何向Spider传入参数的方法实现
Sep 28 Python
快速解决pymongo操作mongodb的时区问题
Dec 05 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
Jun 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
检测png图片是否完整的php代码
2010/09/06 PHP
PHP大批量插入数据库的3种方法和速度对比
2014/07/08 PHP
php中rename函数用法分析
2014/11/15 PHP
php实现的日历程序
2015/06/18 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
javascript全局变量封装模块实现代码
2012/11/28 Javascript
JS 实现点击a标签的时候让其背景更换
2013/10/15 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
javascript 中__proto__和prototype详解
2014/11/25 Javascript
javascript中数组方法汇总
2015/07/07 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
vue使用$emit时,父组件无法监听到子组件的事件实例
2018/02/26 Javascript
Javascript之高级数组API的使用实例
2019/03/08 Javascript
2019最新21个MySQL高频面试题介绍
2020/02/06 Javascript
[42:20]Winstrike vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
使用Python的Scrapy框架编写web爬虫的简单示例
2015/04/17 Python
python定时执行指定函数的方法
2015/05/27 Python
将Python代码嵌入C++程序进行编写的实例
2015/07/31 Python
python多进程(加入进程池)操作常见案例
2019/10/21 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
python实现简单日志记录库glog的使用
2019/12/13 Python
python连接mysql有哪些方法
2020/06/24 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Python编写单元测试代码实例
2020/09/10 Python
Vs Code中8个好用的python 扩展插件
2020/10/12 Python
HTML5重塑Web世界它将如何改变互联网
2012/12/17 HTML / CSS
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
新学期开学标语
2014/06/30 职场文书
学生实习证明模板汇总
2014/09/25 职场文书
产品调价通知函
2015/04/20 职场文书
python playwrigh框架入门安装使用
2022/07/23 Python