使用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 list中append()与extend()用法分享
Mar 24 Python
python 容器总结整理
Apr 04 Python
python消除序列的重复值并保持顺序不变的实例
Nov 08 Python
Python多进程方式抓取基金网站内容的方法分析
Jun 03 Python
python面向对象 反射原理解析
Aug 12 Python
使用python实现希尔、计数、基数基础排序的代码
Dec 25 Python
tensorflow 固定部分参数训练,只训练部分参数的实例
Jan 20 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
Python开发之pip安装及使用方法详解
Feb 21 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
Python切片列表字符串如何实现切换
Aug 06 Python
python中如何打包用户自定义模块
Sep 23 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判断一个数组是否为有序的方法
2015/03/27 PHP
Yii2验证器(Validator)用法分析
2016/07/23 PHP
Yii2中SqlDataProvider用法示例
2016/09/22 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP常用字符串函数小结(推荐)
2018/08/05 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
JavaScript 面向对象的之私有成员和公开成员
2010/05/04 Javascript
SeaJS入门教程系列之SeaJS介绍(一)
2014/03/03 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
Vue 2.0在IE11中打开项目页面空白的问题解决
2017/07/16 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
关于Vue中$refs的探索浅析
2020/11/05 Javascript
Python单链表的简单实现方法
2014/09/23 Python
Python抽象类的新写法
2015/06/18 Python
python自动12306抢票软件实现代码
2018/02/24 Python
html5拍照功能实现代码(htm5上传文件)
2013/12/11 HTML / CSS
Bench加拿大官方网站:英国城市服装品牌
2017/11/03 全球购物
美国在线纱线商店:Darn Good Yarn
2019/03/20 全球购物
日本必酷网络直营店:Biccamera
2019/03/23 全球购物
澳大利亚在线购买葡萄酒:The Wine Collective
2020/02/20 全球购物
YSL圣罗兰美妆俄罗斯官网:Yves Saint Lauret RU
2020/09/23 全球购物
Ego Shoes官网:英国时髦鞋类品牌
2020/10/19 全球购物
EJB的几种类型
2012/08/15 面试题
黄河象教学反思
2014/02/10 职场文书
学历公证书范本
2014/04/09 职场文书
品酒会策划方案
2014/05/26 职场文书
学习计划书怎么写
2014/09/15 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
仓库保管员岗位职责
2015/02/09 职场文书
20180830晚上第一届KSL半决赛 雨神vs解冻(二龙 三炮解说)
2022/04/01 星际争霸
【DOTA2】高能暴走TK秀!PSG LGD vs ASTER - DPC 2022 WINTER TOUR CN
2022/04/02 DOTA