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

我是新的Web应用程序开发。

我的问题是…我已经尝试了一些Zend + Apache(PHP),烧瓶(Python),Express下node.js手动开发。

我发现,当我开始在Zend framework + Apache上进行开发时,每当在Controller,Model或Views下PHP的代码更改时,都不需要重新启动Apache。 这是非常方便,快捷!

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

现在,我正在烧瓶上的项目,我怎么能避免每次重新启动服务器? 问题可以解决,如果我把整个networking应用程序顶部的Nginx?

非常感谢

更新:

当Flask的debugging模式打开时,服务器将检测到更改::

from application import app app.debug = True if __name__ == '__main__': app.run() 

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


tornado上运行它:

 $ pip install tornado 

创build一个包含app.py的新文件server.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() 

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

 touch /home/user/env/app.wsgi 

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

如果使用debugging器运行,则可以使用restart命令重新启动脚本,而不必重新启动整个服务器。