每次使用Flask或Express时如何不重启服务器?

时间:2012-02-29 16:56:10

标签: zend-framework node.js flask

我是网络应用开发的新手。

我的问题是...... 我已尝试在Zend + Apache(php),Flask(python),Express.js下的Express上进行一些实际开发。

我发现当我开始进行开发时 Zend框架+ Apache,每次在控制器,模型或视图下PHP中的代码更改时都不需要重新启动apache。它非常方便快捷!

但是,如果我使用Flask或Express,我每次更改Controller或Model部件上的代码时都必须重新启动整个应用程序。如果View部件上有代码更改,则无需重新启动服务器。但是,这太烦人了!!!

现在,我正在研究Flask上的项目,我怎样才能避免每次重启服务器?如果我将整个网络应用程序置于Nginx之上,可以解决问题吗?

非常感谢

3 个答案:

答案 0 :(得分:6)

更新:

当Flask启用调试模式时,服务器将检测更改::

from application import app
app.debug = True

if __name__ == '__main__':
    app.run()

但是,在生产设置中,建议不要自动刷新服务器。


tornado

之上运行它
$ pip install tornado

创建一个新文件server.py,其中包含app.py

from tornado import autoreload
from tornado.wsgi import WSGIContainer
from tornado.httpserver import HTTPServer
from tornado.ioloop import IOLoop

http_server = HTTPServer(WSGIContainer(app))
http_server.listen(5000)
ioloop = IOLoop.instance()
autoreload.start(ioloop)
ioloop.start()

答案 1 :(得分:2)

如果使用mod_wsgi运行,则只需更改或触摸 WSGIScriptAlias指向的WSGI脚本。

touch /home/user/env/app.wsgi

请参阅http://code.google.com/p/modwsgi/wiki/ReloadingSourceCode

答案 2 :(得分:0)

如果您在debugger开启的情况下运行,则可以使用restart command重新启动脚本,而无需重新启动整个服务器。

相关问题