如何在网页.py

2024-09-29 19:30:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想一有请求就更新日志文件。我启用了一个类变量event_logging_,它被初始化为TRUE。在POST()函数中,我检查event_logging_enabled的值。在

现在在运行时,我将该标志的值修改为FALSE,以备后续请求使用。但这仍然是事实。在

在调试过程中,我发现当收到一个请求时,会创建一个新的对象来处理每个请求,因此,将选择初始化值,即TRUE。在

对于同一类的getlogEnabled()等其他函数,则不是这样。 你能给我建议一下周围的工作吗。在

import web
import threading

class webServer(threading.Thread):
    port = "1234"
    event_logging_enabled  = "True"

    def getlogEnabled(self):
        print "Stub getlogEnabled(): ",self.event_logging_enabled

    def __init__(self):
        threading.Thread.__init__(self) 
        """ Logging """
        print "Init------------------------",self.event_logging_enabled
        self.event_logging_filename = "ueLogs.log"

    def run(self):
        urls = (
        '/','webServer',
        )
        app = web.application(urls,globals())
        sys.argv.append(webServer.port)
        app.run()

    def POST(self):
        print "in POST"
        print "Stub POST(): Logging Enabled : ",self.event_logging_enabled

Tags: 函数importselfeventwebtrueloggingdef
2条回答

我不太熟悉网页.py但是对于web应用程序,如果需要在多个请求之间保存状态,则必须使用session对象来管理它。session对象可以是每个web用户的单独对象,也可以是整个应用程序的公共对象。在

中有一个会话对象网页.py框架: http://webpy.org/docs/0.3/api#web.session

它允许您决定是将会话的内容存储在数据库中还是直接存储在文件中。该页面上“DiskStore”下的代码示例演示了如何在会话中放置变量。在

(顺便说一下,在Python中布尔值是True和False,而不是“True”)。在

我过去所做的一切似乎都很好,如果我需要一个在所有请求中都保持不变的变量,我就在应用程序运行()

例如,如果我想让一个名为'foo'的变量在所有请求中共享,并在请求之间持久化,我将这样做

web.app = web.application(urls, globals())

# Add my custom foo
web.foo = 'some value'

# Start the app
web.app.run()

如果我需要修改或使用foo变量,在我的代码中

^{pr2}$

在启动脚本中,你在web对象上的任何干扰都将持续到应用程序重新启动。有点老套,但很管用。在

相关问题 更多 >

    热门问题