`
fighter1945
  • 浏览: 231382 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

web.py笔记session

 
阅读更多

官方的例子

http://webpy.org/cookbook/sessions.zh-cn

 

服务器端有三种方式存session

一种是基本的store ,放在内存里吧

一种是diskstore ,会在code.py同级建一个sessions的文件夹

一种是dbstore,要对应的建一个表,试着改过对应的列的名字,会报错,目前看来也就是这个db的表里面的东西都是固定的

 

 

 create table sessions (
    session_id char(128) UNIQUE NOT NULL,
    atime timestamp NOT NULL default current_timestamp,
    data text
);

 

 

 

测试的结果

 

db.py

   import sqlite3

cx = sqlite3.connect('d:/temp/sessions.db')
cu=cx.cursor()
#cu.execute(''' create table sessions (
    #session_id char(128) UNIQUE NOT NULL,
    #atime timestamp NOT NULL default current_timestamp,
    #data text) 
  #''')
#cx.commit()
cu.execute('select * from sessions')
for i,row in enumerate(cu):
  print i,row
cx.close()
    

 

 code.py

 

import web
import sqlite3
web.config.debug = False
urls = (
    "/count", "count",
    "/reset", "reset"
)
app = web.application(urls, locals())
#store = web.session.DiskStore('sessions')
#session = web.session.Session(app, store, initializer={'count': 0})

db = web.database(dbn='sqlite', db='sessions.db', )
store = web.session.DBStore(db, 'sessions')
session = web.session.Session(app, store, initializer={'count': 0})

class count:
    def GET(self):
        session.count += 1
        return str(session.count)

class reset:
    def GET(self):
        session.kill()
        store.cleanup(0.002)  #加了个cleanup看效果来着
        return ""

if __name__ == "__main__":
    app.run()

 

真是太简单了,连session都有3种方法可以选,我怎么没记得以前java有这么灵活呢?

不过,不管是读写文件还是数据库,总是比较慢的吧?

 

还有挺奇怪的是reset的时候,不要cleanup一下么?只是kill掉进程的话,不论是文件还是db,都会越来越大的 吧?

真要是本番的话,要不要再写个cron定期清一下?

或者如果真的是本番,根本不会用这2个方法?

 

分享到:
评论

相关推荐

    django,mysql,全栈 搭建的web.seesion,cookie权限

    在本文中,我们将深入探讨如何使用Django框架与MySQL数据库构建一个全栈Web应用程序,重点关注session和cookie在权限管理中的应用。首先,我们来看一下Django框架,它是一个基于Python的高级Web开发框架,提供了MVC...

    Django学习.docx

    当需要在后台获取Session数据时,可以使用`req.session.get()`方法: ```python print('session 中的数据' + req.session.get("userAccount")) ``` 在设置Session时,需要确保已经执行了所有未应用的迁移,以创建...

    Flask快速入门精品课程笔记

    **Flask快速入门精品课程笔记概述** Flask是一款轻量级的Web应用框架,由Armin Ronacher开发,基于Python语言。它的核心理念是“轻便”和“可...这份笔记将是你学习Flask的宝贵资料,助你在Web开发的道路上稳步前行。

    python爬虫之大众点评信息爬虫.zip

    接下来,我们可能要学习如何设置请求头、处理cookies和session,因为大众点评网站通常会对非正常用户行为(如频繁访问)进行反爬机制。我们需要模拟浏览器行为,避免被网站封禁。这可能涉及到设置User-Agent、延时...

    Web-App-Flask:使用 Python 的 Flask 模块构建的 Web 应用程序 - 展示登录、注册和删除帐户系统,旨在为每个帐户用户记录笔记

    使用Python的Flask框架构建Web应用,可以高效地开发出具有用户管理功能的笔记应用。通过集成HTML模板、数据库操作和用户认证,我们可以创建一个简洁而功能丰富的Web应用,满足用户的个性化需求。不断学习和实践Flask...

    flasknotes:Flask 网站,记录您的笔记并具有 SIGN Inupout

    - **Session管理**:Flask通过session机制来跟踪用户状态,当用户成功登录后,会将用户的认证信息存储在服务器端的一个session中,每次请求时检查session内容以确定用户是否已登录。 - **表单处理**:用户输入数据...

    flask-examples:学习烧瓶的日常笔记

    Flask Study 学习flask的日常笔记 flask-so-easy ...py01:Flask简介 安装 ...py09:Flask session microblog microblog是The Flask Mega-Tutorial学习代码 Part I: Hello, World! Part II: Templates Part III: Web Form

    flaskWebApp:简单的烧瓶笔记应用程序

    2. 数据存储:可以使用Flask的session或数据库(如SQLite)来存储笔记。当用户提交笔记时,将其存储并显示在页面上。 3. 动态更新:通过Ajax或者重定向实现页面的动态更新,用户可以查看、编辑或删除笔记,而无需...

    Python的Flask开发框架简单上手笔记

    g.session.close() ``` Flask集成Jinja2模板引擎,允许自定义过滤器和全局变量。例如,定义一个反转字符串的过滤器: ```python @app.template_filter('reverse') def reverse_filter(s): return s[::-1] ``` ...

    Flask-Notes:这是我使用Flask创建的网络应用,您也可以在此处添加注释!

    Flask通过session管理用户状态,确保只有登录用户才能访问他们的笔记。 为了扩展这个应用,可以添加更多功能,如: - 用户身份验证和授权:使用如Flask-Login扩展进行用户身份验证,限制未授权访问。 - 数据库集成...

    python_django_study

    【标题】"python_django_study" 指的是一个关于Python Django框架的学习资源,可能是教程、项目代码或者学习笔记。这个标题暗示了我们将探讨如何使用Python的Django框架进行Web开发。 【描述】中提到的"桑赫儿子...

Global site tag (gtag.js) - Google Analytics