2014-07-11 12 views
5

Sto usando Flask su Windows 7. Pallone e relative versioni sono al di sotto:Flask ascolta solo su 127.0.0.1 ignorando parametro host

Flask==0.10.1 
Werkzeug==0.9.3 

Accesso al app dallo stesso computer è OK utilizzando http://127.0.0.1:5000 Tuttavia da un altro computer in LAN l'accesso non riesce: http://192.168.101.103:5000

avvio l'app con questi parametri:

#app.py 
if __name__ == '__main__': 
    app.run(host='0.0.0.0:5000') 

Una cosa che non capisco è, quando inizio netcat sullo stesso computer, in cui Flask è attualmente in ascolto sulla stessa porta, funziona, e netcat è ancora accessibile da un altro computer:

>c:\Python27\python manage.py runserver 
> 
* Running on http://127.0.0.1:5000/ 
* Restarting with reloader 

opere. ..

>nc -l -p 5000 

funziona sullo stesso computer, stessa porta ???

GET/HTTP/1.1 
Accept: text/html, application/xhtml+xml, */* 
Accept-Language: de-DE 
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; 

Accept-Encoding: gzip, deflate 
Host: 192.168.101.103:5000 
DNT: 1 
Connection: Keep-Alive 

anche accettare la connessione da un altro computer ???

Quindi accanto alla domanda ovvia, come ottenere Flask che serve per LAN, sono curioso, come potrebbero due processi di una macchina ascoltare sulla stessa porta?

Grazie!

risposta

6

Il port va in un suo parametro:

app.run(
    host="0.0.0.0", 
    port=5000 
) 
+0

Sembra che la dichiarazione è stata ignorata. Ho disabilitato 'if __name__ == '__main __':' e ho ottenuto l'errore su 'app.run (host =" 0.0.0.0:5000 ")' Ora funziona, ma ha uno strano comportamento di avvio/arresto. A volte al riavvio Flask però si lega a 127.0.0.1. Penso di dover andare per nginx come server proxy per il Flask per servire in LAN –

+1

Non usare il server integrato per altro che lavori di sviluppo. Non è costruito per questo. In produzione, utilizzare gunicorn o un altro contenitore. –

Problemi correlati