2012-02-29 12 views
6

Sono nuovo sullo sviluppo di app web.Come non riavviare il server ogni volta che si lavora con Flask o Express?

La mia domanda è ... Ho provato qualche sviluppo manuale su Zend + Apache (php), Flask (python), Express su node.js.

ho scoperto che quando comincio a fare lo sviluppo su Zend framework + Apache, non c'è bisogno di riavviare l'apache ogni momento in cui v'è il cambiamento di codice in PHP sotto Controller, Modello o Vista. È molto comodo e veloce!

Tuttavia, se lavoro su Flask o Express, devo riavviare l'intera applicazione ogni volta che cambio codice su parte Controller o Model. Non è necessario riavviare il server se è presente un cambio di codice in Visualizza parti. Tuttavia, è abbastanza fastidioso !!!

In questo momento, sto lavorando al progetto su Flask, come posso evitare di riavviare il server ogni volta ??? Il problema può essere risolto se inserisco l'intera app Web su Nginx ??

Grazie mille

risposta

0

Se si esegue con il debugger, è possibile utilizzare il restart command per riavviare lo script senza riavviare l'intero server.

6

UPDATE:

Quando la modalità di debug è per Flask, il server rileverà per le modifiche ::

from application import app 
app.debug = True 

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

Tuttavia, in un ambiente di produzione, non è consigliabile per l'auto-aggiornare il server.


Run in cima tornado:

$ pip install tornado 

Creare un nuovo file server.py, che avvolgono il 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

perché funziona? Tracciano l'io diverso e ricaricano automaticamente il server? –

+0

Per apache + php, l'apache viene ricaricato implicitamente ?? –

Problemi correlati