web.py 0.3 新手指南 - Sessions

问题

如何在web.py中使用session

解法

注意!!!:session并不能在调试模式(Debug mode)下正常工作,这是因为session与调试模试下的重调用相冲突(有点类似firefox下著名的Firebug插件,使用Firebug插件分析网页时,会在火狐浏览器之外单独对该网页发起请求,所以相当于同时访问该网页两次),下一节中我们会给出在调试模式下使用session的解决办法。

web.session模块提供session支持。下面是一个简单的例子--统计有多少人正在使用session(session计数器):

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

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

class reset:
    def GET(self):
        session.kill()
        return ""

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

web.py在处理请求之前,就加载session对象及其数据;在请求处理完之后,会检查session数据是否被改动。如果被改动,就交由session对象保存。

上例中的initializer参数决定了session初始化的值,它是个可选参数。

如果用数据库代替磁盘文件来存储session信息,只要用DBStore代替DiskStore即可。使用DBStore需要建立一个表,结构如下:

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

DBStore被创建要传入两个参数:db对象和session的表名。

db = web.database(dbn='postgres', db='mydatabase', user='myname', pw='')
store = web.session.DBStore(db, 'sessions')
session = web.session.Session(app, store, initializer={'count': 0})

`web.config`中的sessions_parameters保存着session的相关设置,sessions_parameters本身是一个字典,可以对其修改。默认设置如下:

web.config.session_parameters['cookie_name'] = 'webpy_session_id'
web.config.session_parameters['cookie_domain'] = None
web.config.session_parameters['timeout'] = 86400, #24 * 60 * 60, # 24 hours   in seconds
web.config.session_parameters['ignore_expiry'] = True
web.config.session_parameters['ignore_change_ip'] = True
web.config.session_parameters['secret_key'] = 'fLjUfxqXtfNoIldA0A0J'
web.config.session_parameters['expired_message'] = 'Session expired'
  • cookie_name - 保存session id的Cookie的名称
  • cookie_domain - 保存session id的Cookie的domain信息
  • timeout - session的有效时间 ,以秒为单位
  • ignore_expiry - 如果为True,session就永不过期
  • ignore_change_ip - 如果为true,就表明只有在访问该session的IP与创建该session的IP完全一致时,session才被允许访问。
  • secret_key - 密码种子,为session加密提供一个字符串种子
  • expired_message - session过期时显示的提示信息。
web2py生产部署:Ubuntu 14.04 + uWSGI + Nginx 稳定配置实战 Web服务器部署本质上是应用框架、WSGI容器、反向代理与操作系统四层能力的协同。uWSGI作为Python Web应用的标准进程管理器,通过多进程/多线程模型突破GIL限制,提供请求超时(harakiri)、内存管控(limit-as)和优雅重启等关键能力;Nginx则承担SSL终止、静态资源卸载与连接调度职责,其Unix域套接字通信显著提升I/O效率。在老旧但稳定的Ubuntu 14.04环境中,需适配upstart进程管理、Python 2.7兼容性及系统级权限约束,避免因socket权限、sessi 阅读详情

相关推荐

Python Web应用Session优化:Redis替代MySQL实战指南

Session是Web应用中管理用户状态的基础机制,其底层存储方案直接影响高并发场景下的响应延迟与系统稳定性。传统MySQL存储虽具事务一致性,但面对短时效、高读频、弱一致性要求的session数据,易引发行锁争用与I/O瓶颈。Redis凭借内存存储、原生TTL、原子操作等特性成为更匹配的技术选型。本文聚焦Ubuntu 22.04 + Python 3.10 + Redis 7.0生产环境,详解连接池配置、msgpack序列化、TTL智能续期、双写平滑迁移等关键实践,解决session读写性能骤降、数据丢失

weixin_30731305的博客 576

豆包收费真相:90%用户无需付费的AI使用指南

AI助手收费模式正从‘按使用量’转向‘按能力上限’,核心在于区分基础智能服务与高阶推理资源。豆包的Pro订阅并非对日常AI交互收费,而是针对超长文档处理、多步深度思考等专业场景的弹性扩容,其底层逻辑类似水电费——基础用量免费,超额需求才需增容。这种分层设计依托模型轻量化带来的成本下降,使免费版能力持续增强,如多文档交叉分析、实时网页深度解析、语音容错优化等均已向大众开放。对于学生、职场人、中小商家等主流用户,掌握提示词工程、分段锚定、工具协同等免费效能策略,比开通会员更能释放真实生产力。

weixin_30328063的博客 435

87、Jython在服务器端Web编程中的应用

本文详细介绍了Jython在服务器端Web编程中的应用,涵盖Servlet和JSP的实现方式、常见的Servlet容器(如Tomcat)、Jython与Java在Web开发中的对比、Cookies和Session管理、数据库连接方法以及JSP中集成Jython的不同技术方案。通过示例代码演示了如何定义Servlet类、处理HTTP请求、操作会话和Cookie、以及使用JSP结合Jython进行动态网页开发。文章还探讨了Jython在Web开发中的优势及未来发展趋势,并提供了开发环境搭建、资源管理和安全实践的

k5l6m的博客 107

web.py——session

使用web.py过程中,遇到两个疑问: 1、web.py如何管理相对自动的管理session? 2、session缓存的更新为何会有延迟? 通过学习web.py框架中session相关源码,有了答案: 1、web.py通过Session实例作为公共的session使用接口,Session实例基于threading模块提供线程安全的空间用于加载session,加载session依赖s

liyh_xd的博客 768

94、Jython在服务器端Web编程中的应用

本文详细介绍了Jython在服务器端Web编程中的应用,涵盖Servlet容器的选择与配置、Jython Servlet的开发与测试、Cookies和Sessions的管理、数据库连接优化以及JSP中使用Jython的不同方法。通过丰富的代码示例和实践指导,帮助开发者结合Java的强大功能与Python的灵活性,提高Web开发效率和代码质量。

k5l6m的博客 76

海康安防平台接口调试指南:从签名生成到Vue项目集成

本文详细解析了海康安防平台接口认证规则,从签名生成到Vue项目集成的完整流程。通过核心机制解析、签名工具使用技巧及Vue项目中的优雅集成方案,帮助开发者高效完成接口调试,避免常见问题。特别适合需要将海康安防平台接口集成到Vue项目中的开发者参考。

weixin_42533120的博客 437

python session过期_python session过期timeout处理

1、使用webpy自身带的session配置选项,具体如下:web.config.session_parameters['cookie_name'] = 'webpy_session_id'web.config.session_parameters['cookie_domain'] = Noneweb.config.session_parameters['timeout'] = 86400, #2...

weixin_39734987的博客 552

wsl + vscode 离线配置 ERROR: Faild to download https://update.code.visualstudio.com

很多情况下是没有现成的VS Code Server程序的,需要手动下载。记住上面的Commit ID,可以通过下面的链接下载 vscode-server-linux-x64.tar.gz。然后将vscode-server-linux-x64.tar.gz上传在服务器上的$HOME/.vscode-server/bin文件夹中,解压。在wsl中下载不了 vscode 的核心。运行下面两行命令,建立空的$HOME/.vscode-server/bin文件夹。重新运行 wsl与vs的链接即可。

点云算法工程师 3789

Python中web.py session使用,解决EOFError

web.py使用之session Python 内存读取错误 Python.exe应用程序错误 “0x64024e96” 指令引用的 “0x00000135” 内存。该内存不能为 “read” session EOFError

Yu的专栏 4254

[技术解析] SGDC驱动的轻量级IoT入侵检测:特征选择与模型优化的实战指南

本文深入解析了如何利用SGDC驱动的轻量级入侵检测系统保护IoT设备安全。通过实战指南,详细阐述了SGDC模型在资源受限环境下的优势,并结合特征选择技术优化模型性能,实现高效、低耗的异常流量检测,为物联网安全部署提供了一套可行的解决方案。

weixin_29192211的博客 350

12V转5V稳压电路详细分析(7805三端稳压,LM2596稳压)

7805线性三端稳压 DCDC的意思是直流变到直流(不同直流电源值的转换),只要符合这个定义都可以叫DCDC转换器,或称之为开关电源或开关调整器。 7805属于常用的线性三端稳压器,输入电压范围不大于35V,输入输出压差2V,最大输出电流1.5A,下图为原理图,其原理简单,使 用方便,深受很多用户的喜爱。但是其不足之处就是效率低,特别是压差越大时其效率越低。比如这里12V转5V的效率为 5V/12V≈41.7%。 如上电路是最经典的7805稳压5V电路,电路中有两个电容,电容的作用如下: ...

a2001444的博客 9万+

python第十八次课 2018.05.13

'''创建一个test库create database test;授权一个用户grant all privileges on *.* to 'xiang'@'%' identified by '1qaz@WSX';创建表create table student(id int not null);查询select * from tabel_name where 条件1 and  条件2增加inser...

qq_38981827的博客 323

CentOS7环境下搭建 rsyslog 日志服务器,rsyslog+loganalyzer

1.系统环境部署 ip hostname 192.168.200.182 web 192.168.200.184 rsyslog-mysql 关闭防火墙、selinux、下载epel源 [root@web ~]# systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/f

sehn_的博客 3754

web.py+sqlalchemy的session DBStore

前言 用了一段时间的web.py,非常好用,所以打算整理一下一些在web.py里的应用,方便自己需要时查找,也让有兴趣的朋友能一同学习,如果大家觉得文章有什么问题,请指出来,我也能及时修改自己的错误。 在此悼念下web.py的作者... 正文 好了,现在开始正文。刚开始用web.py做开发的时候,我使用的是DiskStore,一开始感觉没什么问题,可是后来在使用uwsgi的时候

zhengnz的专栏 2654

2021-8-14 EDK II编译

2021-8-14 EDK II 编译为什么要写这篇文章新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 为什么要写这篇文章 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdo

qq_45775660的博客 2946

授时中心被攻击?Windows 11 电脑时间不准?手把手教您如何更换国内稳定高速的时间服务器(时间服务器整理)

近期授时中心被攻击,时间同步重要性凸显。Windows 11 默认服务器在国内常遇网络问题。本文教你轻松修改时间服务器,选择更稳定、快速的国内优质服务器,彻底解决电脑时间不准的烦恼,让你的系统时间永远精准如一!🚀

XiaoqiangClub的博客 1082

web.py session.py

""" web.py session.py 功能:web.py 的 session 功能。 参考:http://webpy.org/cookbook/sessions.zh-cn 测试url: 1.添加一条 session,并清除过期 session。 http://localhost:8080/addSession 2.清除过期的 sessions. http://localhost:8080...

weixin_42193179的博客 394

WOFOST作物模型(7):6.0.6版本的PCSE使用(多层水分平衡和SNOMIN碳氮模型的集成)

wofost81文件结构如上,其中所需的参数可从github上获取然后input下有两个需要调用的功能函数py文件,需要拖到自己的运行py文件同级目录下在使用土壤模块SNOMIN进行作物生长模型模拟时,需要为土壤剖面的不同层次提供多种输入变量。这些变量通常不随年份变化,因此会统一在土壤文件中定义。本节将说明如何将这些输入变量整合到一个字典中,进而生成SNOMIN能够读取的土壤文件。

所有专家都曾始于新手 637

web.py session 应用

注意: web.py版本必须是0.3以上import webweb.config.debug = Falseurls = ( "/", "index",)app = web.application(urls, locals())session = web.session.Session(app, web.session.DiskStore(sessi

smallfish | http://chenxiaoyu.org/blog 1442

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Django3.0 如何使用Sessions

文章目录1. 启用会话2. 配置会话引擎2.1. 使用数据支持的会话2.2. 使用缓存的会话2.3. 使用基于文件的会话2.4. 使用基于cookie的会话3. 在views中使用会话3.1. 会话序列化3.1.1. 捆绑序列化器3.1.2. 编写自己的序列化器3.2. 会话对象准则3.3. 范例4. 设置测试cookies5. 在views之外使用会话6. 当会话被保存时7. Browser-l...

白M的博客 769

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【转载】django web Cookie 和 Sessions 应用

原文章:http://www.cnblogs.com/lhj588/archive/2011/10/27/2226976.html     ############################################################### #一、存取Cookies # 1、设置Cookies # response.set_cookie("cookie_key

iorijjw的专栏 379

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Django Redis Sessions

Django Redis Sessions Django Redis Sessions 是一个用于管理 Django 应用程序会话的库。它允许您将会话数据存储在 Redis 数据库存储中,从而提高了性能并减少了数据库负载。 为什么选择 Django Redis Sessions? 如果您正在使用 Django 框架开发 web 应用程序,并且需要处理大量的并发请求或高流量场景,那么将会话数据存储在...

gitblog_00004的博客 405

opencodex Responses API Item ID 前缀校验硬化:四个 400/404 根因与防御纵深修复实践

在 opencodex 代理(Universal provider proxy)上,当 Codex 子代理经由 ocx 端口(如 10100)以 gpt-5.6-sol 等模型走 OpenAI Responses API 时,上游会返回 400/404 错误。本指南聚焦 2026-07-14 的 Item ID Passthrough Hardening(`devlog/_fin/260714_i

gitblog_00358的博客 526

Requests 3.0核心功能解密:为什么它是Python开发者的必备工具

Requests 3.0是Python HTTP库的重大升级版本,专为人类和机器设计!🚀 作为Python开发者必备的HTTP请求工具,Requests 3.0带来了革命性的改进和现代化的特性,让你的网络请求更加高效、安全、易用。 ## 🔥 Requests 3.0:Python HTTP请求的终极进化 Requests库一直是Python社区中最受欢迎的HTTP客户端库,每天有超过160

gitblog_01135的博客 339

ExLlamaV2 Web UI实战指南:3步搭建高性能本地大模型推理平台

ExUI是一个基于ExLlamaV2的高性能本地大语言模型Web界面,专为技术开发者和研究人员设计。在前100个字内,这个项目提供了完整的Web界面解决方案,支持多会话管理、模型加载优化和实时推理控制,让开发者能够快速部署和管理本地大语言模型。 ## 技术架构解析:轻量级Web推理平台 ExUI采用经典的Flask后端+纯前端JavaScript架构,实现了高效的大模型推理服务。整个系统分为三

gitblog_00891的博客 396

QuickRecorder:三步录完一整节课的开源 macOS 录屏工具

上课讲到一半,学生问到一个细节,你回头翻 PPT,才发现屏幕从头到尾没录下来。QuickRecorder 是一款基于 Apple ScreenCaptureKit 的开源轻量 macOS 录屏工具,专门把全屏、窗口、应用画面连同声音一次录下来,安装包不到 10MB。 ## 30 秒上手:如何安装 QuickRecorder 1. 获取并安装: ```bash git clone https:

gitblog_01136的博客 361
上一篇: web.py 0.3 新手指南 - 安装
下一篇: web.py 0.3 新手指南 - 在调试模式下使用session
SleepInDelphi
博客等级 码龄19年 32粉丝 388原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值