使用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基于twisted实现简单的web服务器
Sep 29 Python
Python中用函数作为返回值和实现闭包的教程
Apr 27 Python
在主机商的共享服务器上部署Django站点的方法
Jul 22 Python
python通过百度地图API获取某地址的经纬度详解
Jan 28 Python
Python之批量创建文件的实例讲解
May 10 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
Sep 07 Python
Matplotlib自定义坐标轴刻度的实现示例
Jun 18 Python
Python如何在bool函数中取值
Sep 21 Python
python MD5加密的示例
Oct 19 Python
Python使用pyenv实现多环境管理
Feb 05 Python
浅谈哪个Python库才最适合做数据可视化
Jun 28 Python
python字符串拼接.join()和拆分.split()详解
Nov 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
默默简单的写了一个模板引擎
2007/01/02 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
ThinkPHP5.1验证码功能实现的示例代码
2020/06/08 PHP
javascript编程起步(第六课)
2007/01/10 Javascript
记录几个javascript有关的小细节
2007/04/02 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
简单的js表单验证函数
2013/10/28 Javascript
jQuery学习笔记之jQuery.extend(),jQuery.fn.extend()分析
2014/06/09 Javascript
使用jQuery简单实现模拟浏览器搜索功能
2014/12/21 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
js实现自动轮换选项卡
2017/01/13 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
ES6基础之解构赋值(destructuring assignment)
2019/02/21 Javascript
js实现简易ATM功能
2020/10/27 Javascript
[01:16]DOTA2小知识课堂 Ep.03 芒果树无伤肉山
2019/12/05 DOTA
Python IDE PyCharm的基本快捷键和配置简介
2015/11/04 Python
理解Python中的With语句
2016/03/18 Python
详解Python下ftp上传文件linux服务器
2018/06/21 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Python input函数使用实例解析
2019/11/22 Python
Python爬虫爬取煎蛋网图片代码实例
2019/12/16 Python
Python数据可视化处理库PyEcharts柱状图,饼图,线性图,词云图常用实例详解
2020/02/10 Python
keras的backend 设置 tensorflow,theano操作
2020/06/30 Python
python实现简单的五子棋游戏
2020/09/01 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
2020/12/02 HTML / CSS
中专毕业生自我鉴定范文
2013/11/09 职场文书
门卫班长岗位职责
2013/12/15 职场文书
大学团日活动新闻稿
2014/09/10 职场文书
井冈山红色之旅感想
2014/10/07 职场文书
2014年人事科工作总结
2014/11/19 职场文书
投资合作意向书范本
2015/05/08 职场文书
手把手带你彻底卸载MySQL数据库
2022/06/14 MySQL