2015-02-18 17 views
6

Per quanto ho capito, Flask dovrebbe creare un thread e un secondo thread per eseguirlo, ma quello che vedo è che ci sono sempre due processi, non thread, in esecuzione. Anche per l'app più semplice.Perché un'applicazione Flask crea due processi?

from flask import Flask 
from flask import render_template, request, flash, session, redirect 

app = Flask(__name__) 

@app.route('/') 
def hello_world(): 
    return 'Hello World!' 

app.run(host="192.168.21.73", port=5000, debug=True) 

Potete vedere due processi in esecuzione:

ps -x 
5026 ttyO0 S+  0:01 /usr/bin/python ./test_flask.py 
5031 ttyO0 Sl+ 0:45 /usr/bin/python ./test_flask.py 

Cosa sta succedendo qui?

risposta

13

È perché si sta eseguendo il server di sviluppo con il reloader. Il reloader controlla il filesystem per le modifiche e avvia l'app reale in un processo diverso, quindi ci sono due processi totali.

È possibile disabilitare il reloader impostando debug=False o use_reloader=False quando si chiama run.