我正在学习 webpy 来编写代码。
我正在使用 Webpy 框架 0.34。我的操作系统是 ubuntu 11.04,python 的版本是 2.7。
在 webpy.org 的 tutorials 中它说:



但它不起作用。

我的 code.py 与教程的示例相同:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import web
class index():
    def GET(self):
        return 'a'

if __name__ == '__main__':
    urls = ('/', 'index')
    app = web.application(urls, globals())
    app.run()

我正在使用内置的网络服务器(使用
python code.py

启动服务器)

当我将代码“return 'a'”更改为“return 'b'”时,在网络浏览器中,它一直显示“a”,直到我重新启动服务器。

每次重写代码都重启服务器是浪费时间,为什么自动重载机制不起作用?难道我做错了什么?感谢您的任何帮助。

编辑 :抱歉,我的 code.py 与教程的示例不完全相同,这导致了问题。如果我将 urls 赋值行放在 if 语句之外,则重新加载机制会起作用!!
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import web

class index():
    def GET(self):
        return 'a'

urls = ('/', 'index')

if __name__ == '__main__':
    app = web.application(urls, globals())
    app.run()

但我不知道为什么...

最佳答案

如果你像我一样有单独的 route.py 文件,不要像这样设计文件:

from controllers.index import Index
urls = ('/','Index')

它不会在文档更改时重新加载,而是这样做:
urls = ('/','controllers.index.Index')

关于python - Webpy : how to auto reload source code when it changed?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6783889/

10-16 12:26