Python Web应用程序启动多次-Web.py

Python Web应用程序启动多次-Web.py,python,python-2.7,web.py,Python,Python 2.7,Web.py,我有这样一段代码,它在服务器启动时加载必要的文件并打印必要的信息,但在中,如果uuu name_uuu==“uuu main_uuu”:我也在启动后台进程,然后最后执行app.run() 我的问题是,在加载完所有内容后,后台进程开始打印并重新加载所有内容。当服务器收到第一个请求(get/POST)时,它也会执行相同的操作。我怎样才能使它只加载一次 import web from multiprocessing import Process import scripts print 'Engine

我有这样一段代码,它在服务器启动时加载必要的文件并打印必要的信息,但在
中,如果uuu name_uuu==“uuu main_uuu”:
我也在启动后台进程,然后最后执行app.run()

我的问题是,在加载完所有内容后,后台进程开始打印并重新加载所有内容。当服务器收到第一个请求(get/POST)时,它也会执行相同的操作。我怎样才能使它只加载一次

import web
from multiprocessing import Process
import scripts
print 'Engine Started'
# Code to load and print necessary stuff goes here...

urls = (
    '/test(.*)', 'Test'
)

class Test():

    def GET(self,r):
        tt = web.input().t
        print tt
        return tt


if __name__ == "__main__":
    try:
        print 'Cache initializing...'
        p = Process(target=scripts.initiate_cleaner)
        p.start() # Starts the background process
    except Exception, err:
        print "Error initializing cache"
        print err

    app = web.application(urls, globals())
    app.run()
因此,在启动进程并从localhost:8080/test?t=er请求后,将加载三次(“引擎启动”打印三次)


我通过了,但它解决了flask中的问题,我使用了web.py,我不知道这为什么会让您感到惊讶,或者为什么会成为一个问题。根据定义,后台进程是与web进程分开的进程;每一个都将导入代码,并因此打印该消息。如果您不想看到该消息,请将其放入
If\uuu name\uuuu
块中。

print'Engine Started'
不在
If\uuuu name\uuuu==“\uuu main\uuuu”:
@PadraicCunningham所以您是说我应该将所有加载代码和打印放在
If\uu name\uuu main\uuuuuu>块中:
?只有当从文件导入任何内容时,如果uuu name uuu==“\uuuu main”将不会执行
中的内容。这是使用它的要点,只有当您实际执行文件时,if中的任何内容才会运行。好的,谢谢,我的问题在我将代码移动到上述位置后得到了解决。但是,为什么在运行一个进程或者第一个请求出现时,它会遍历整个代码呢。不适用于第二次和以后的请求?因为在第一次请求之后,进程已经运行,并且代码已经导入。