python - 内存中的Python纸牌游戏/无数据库

标签 python uwsgi

我想在服务器上使用 uwsgi/nginx 运行 python 纸牌游戏。在互联网上学习 uwsgi 很痛苦,因此我的问题在这里:

如何在服务器上运行 python 应用程序并在收到某些请求时读取/更新我的对象?我不想跨数据库表对我的游戏进行建模。这可能吗?

所有教程都指向此示例文件

def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return "Hello world!"

但是在应用程序函数内部我无法引用任何先前定义的变量。 我想要的是:

i = 0
def application(env, start_response):
    i = i + 1
    start_response('200 OK', [('Content-Type','text/html')])
    return "Counter: " + str(i)

因此,每次收到请求时,我都会递增。

我写了数百行游戏,假设我能够做这么多......但我已经碰壁了。任何帮助都会拯救我。

最佳答案

在使用它之前,您需要global i。但这可能会或可能不会按您的预期工作,具体取决于您的 uwsgi 配置 - 您是否有生成进程池、使用线程或启用重新启动?仅当您只有一个进程正在运行并且该进程不会在请求之间被回收时,global 技巧才会起作用。并且该过程最好需要自行生成 - 像 paste 这样的东西可能更容易配置为按您想要的方式工作。

关于python - 内存中的Python纸牌游戏/无数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16861813/

相关文章:

perl - uWSGI错误perl应用程序未找到

flask 登录: TypeError: decoding Unicode is not supported

python - urllib 下载的文件与我手动下载的文件不同

javascript - 通过django模板中数据属性的数值切换元素

python - WTForms 在同一页面上呈现两个带有 Recaptcha 字段的表单时,仅显示一个表单

python - 如何在Python中另一个类的方法中引用函数的 "return"?

python - MySQL 如果存在(选择),则更新,否则,使用日期比较使用 python 插入

python - uWSGI:使用emperor模式,为vassal注册内部路由规则

python - Django 不加载内部 .css 文件

python - syslog 正在工作,但 SysLogHandler 不工作