我是网络应用开发的新手。
我的问题是...... 我已尝试在Zend + Apache(php),Flask(python),Express.js下的Express上进行一些实际开发。
我发现当我开始进行开发时 Zend框架+ Apache,每次在控制器,模型或视图下PHP中的代码更改时都不需要重新启动apache。它非常方便快捷!
但是,如果我使用Flask或Express,我每次更改Controller或Model部件上的代码时都必须重新启动整个应用程序。如果View部件上有代码更改,则无需重新启动服务器。但是,这太烦人了!!!
现在,我正在研究Flask上的项目,我怎样才能避免每次重启服务器?如果我将整个网络应用程序置于Nginx之上,可以解决问题吗?
非常感谢
答案 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重新启动脚本,而无需重新启动整个服务器。