2012-02-29 40 views
6

我是網絡應用程序開發新手。如何在使用Flask或Express時每次不重啓服務器?

我的問題是... 我嘗試了一些在Zend + Apache(php),Flask(python),Express下的node.js上的手動開發。

我發現當我開始在 Zend framework + Apache上開發時,每次在Controller,Model或Views下的PHP代碼更改時,都不需要重新啓動apache。這是非常方便和快捷!但是,如果我使用Flask或Express,則每次更改Controller或Model部分上的代碼時,都必須重新啓動整個應用程序。如果View部件上有代碼更改,則無需重新啓動服務器。但是,它很煩人!

現在,我正在Flask項目上工作,如何避免每次重新啓動服務器?如果我把整個網絡應用放在Nginx之上,問題能解決嗎?

非常感謝

回答

6

UPDATE:

當調試模式是對瓶,服務器將檢測更改::

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() 
+0

爲什麼它的工作原理?他們是否跟蹤io不同並自動重新加載服務器? – 2012-03-03 11:16:44

+0

對於apache + php,apache是​​否會隱式重載? – 2012-03-03 11:17:01

相關問題