我正在学习编写代码的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'”时,在Web浏览器中,它会一直显示“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()
但我不知道为什么......
答案 0 :(得分:1)
我只有一个想法:您的编辑器不会更改文件修改的时间。尝试通过在代码修改后运行以下命令来强制更改时间戳,然后检查结果:
$ touch code.py
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您有像我这样的单独route.py
文件,请不要像这样设计文件:
from controllers.index import Index
urls = ('/','Index')
它不会在文档更改时重新加载,而是执行此操作:
urls = ('/','controllers.index.Index')
答案 3 :(得分:-1)
更改并保存代码后,您应该刷新页面