我是Web框架和Web开发的新手(我主要是一个Python桌面开发人员),并且已经尝试了web.py,取得了一些成功,但现在我被卡住了。 / p>
我的目标是留下一个应用程序"运行"并不断更新,以便我可以按需检索当前状态。在下面的基本示例中,我想启动一个计数器,并在连接到正在运行的应用程序时查看当前值。
print("Content-type: text/html\n\n")
from threading import Thread
import time
import web
urls = ('/', 'index')
def test():
while True:
web.app.count += 1
print(web.app.count)
time.sleep(5)
class index:
def GET(self):
return web.app.count
if __name__ == '__main__':
web.app = web.application(urls, globals())
web.app.count = 0
t = Thread(target=test)
t.daemon = True
t.start()
web.app.run()
如果我使用localhost运行应用程序,它按预期工作,我连接到localhost:8080并且打印到屏幕的值与打印到控制台的值匹配。如果我将脚本作为cgi脚本上传到我的Web主机,则应用程序不会连续运行,并且每次连接到其URL时都会运行,每次都返回1,这可能是正常的。如how to run background job in web.py?所示,我似乎需要通过SSH运行脚本,例如:
python app.py 1234 > log.txt 2>&1 &
在端口1234上运行(默认值为8080,"正在使用")。这似乎有效,但我不知道去哪里查看我网站上正在运行的应用程序。如何连接到此端口1234? myurl.com:1234不起作用,脚本的url仍然具有与以前相同的行为。我想这个答案并不是特定于web.py的,但是我不明白这些东西是如何工作的 - 我的谷歌搜索没有返回任何有用的东西,可能是因为我没有问正确的问题。