首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >web.py共享变量

web.py共享变量
EN

Stack Overflow用户
提问于 2011-04-15 21:32:56
回答 2查看 2.1K关注 0票数 4

在web.py中,我需要创建一个共享变量,对于该变量,多个线程(请求)可以读取或写入该变量。

对于这种情况,首选的方式是什么?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-15 22:22:09

我不确定这真的是一个web.py问题,但我们一直都在为进程范围的缓存(即所有请求线程共享的dict缓存)做这类事情。我们使用web.py,但我下面的示例应该适用于任何多线程Python web服务器。

hotels.py:

代码语言:javascript
复制
cache = {}

def load_cache():
    """Load hotels into {id: data} dict cache."""
    rows = db.select('hotels')
    for row in rows:
        cache[row.id] = row

def get_hotel(hotel_id):
    """Get data for hotel with given ID, or return None if not found."""
    if not cache:
        raise Exception('hotels cache not loaded')
    return cache.get(hotel_id)

main.py:

代码语言:javascript
复制
import hotels

def main():
    hotels.load_cache()
    start_server()
票数 2
EN

Stack Overflow用户

发布于 2011-04-18 10:52:30

我发现很多代码都在使用这个容器: web.ctx

喜欢

代码语言:javascript
复制
web.ctx.orm = scoped_session(sessionmaker(bind=engine))
web.ctx.session = web.config._session

你可以在一个函数中初始化它们,然后处理它们:

代码语言:javascript
复制
app.add_processor(web.loadhook(init_func))

不确定它是否适用于您的场景

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5677561

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档