bottle框架学习(七)之session的使用
2015-06-21 16:04
666 查看
Bottle 自身并没有提供Session的支持,,可以使用beaker中间件或自己实现。Beaker是一个缓存和会话的库,与Web 应用程序和独立的Python 脚本及应用程序一起使用。它是WSGI 的中间件,能够很简单地嵌入,与基于 WSGI 的 Web 应用程序一起使用,并且缓存修饰器对于任何基于 Python 的应用程序都是容易使用的。
beaker文档:http://beaker.readthedocs.org/en/latest/index.html
安装beaker
在浏览器中输入:http://192.168.116.199:8000/login
随便输入一个用户明密码还是这个login页面,输入ju:123之后会进入如下页面:
我们查看一下/tmp/sessions_dir这个目录:
beaker文档:http://beaker.readthedocs.org/en/latest/index.html
安装beaker
[root@ju bottle]# pip install beaker下面直接上代码:
[root@ju bottle]# cat session_test.py #!/usr/bin/env python #coding=utf-8 from bottle importroute,run,template,redirect,request,default_app from beaker.middleware importSessionMiddleware session_opts = { 'session.type':'file', #以文件的方式保存session 'session.cookei_expires':300, #session过期时间为300秒 'session.data_dir':'/tmp/sessions_dir', #session保存目录 'session.auto':True #自动保存session } @route('/login') def session_func(): return template('login') @route('/login', method='POST') def do_login(): username = request.forms.get('username') password = request.forms.get('password') if username =='ju' and password == '123': #这里为了方便,写死用户名和密码,正常应该到数据库去查询,下一张我们讲解如何操作数据库 s = request.environ.get('beaker.session') #如果用户名和密码都正确,则获取环境变量中的beaker.session对象,然后以字典的方式,往session对象添加用户名,也可以添加其他信息。 s['user'] = username s.save() redirect('/') else: redirect('/login') @route('/') def index(): s= request.environ.get('beaker.session') username = s.get('user') #这里的user的值,是从do_loging函数保存进来的 if not username: redirect('/login') return "登录成功,%s" % username dapp = default_app() session_app = SessionMiddleware(dapp,session_opts) run(app=session_app,host='0.0.0.0',port=8000,debug=True)
在浏览器中输入:http://192.168.116.199:8000/login
随便输入一个用户明密码还是这个login页面,输入ju:123之后会进入如下页面:
我们查看一下/tmp/sessions_dir这个目录:
[root@ju bottle]# tree /tmp/sessions_dir/ /tmp/sessions/ ├──container_file │ ├── h │ │ └── hX │ │ └── hXTaPNCGPNUnDDZi5h1JUih70OM.cache │ └── j │ └── jU │ └── jUqEPiJf6RgFx93G4ECD9qa_meQ.cache └──container_file_lock └── 5 ├── 59 │ └──59f3446002b04a9c2e9f49fb3a7b9b154d0d9694.lock └── 5b └──5b7c1da41560807436212ee66daeaed7c8b8a1fb.lock 9 directories, 4 files
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法
- Python实现的基于ADB的Android远程工具