2016-06-15 13 views
1

Ich benutze Ubuntu mit Virtual Box Manager von Windows-Maschine. In der VM-Box ubuntu starte ich eine Python-Flask-Anwendung, die unter http://localhost:5000 läuft.Zugang Web-Server läuft auf Virtual Box Ubuntu auf Host Windows Maschine

Ich habe versucht, die VM-Box localhost URL auf Windows-Rechner mit der VM-Box-IP, die ich mit ifconfig bekommen. Aber es heißt:

Your Internet access is blocked 

Bin ich auf den richtigen Weg zugreifen?

hier ist mein Python-Kolben-Code:

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run() 
+0

Haben Sie den Host in der Flaschenanwendung eingestellt? –

+0

@HassanMehmood aktualisiert meine Pythonflasche Code – iJade

+0

Sie müssen einen Host wie diese app.run geben (Host = '0.0.0.0') –

Antwort

4

Sie benötigen einen host = '0.0.0.0' angeben, während die App zu starten. Standardmäßig akzeptiert es nur Anfragen von localhost. Wenn Sie also eine Anfrage von einer anderen IP-Adresse senden, müssen Sie einen Host angeben.

Siehe untenstehendes Beispiel.

from flask import Flask 
app = Flask(__name__) 

@app.route("/") 
def hello(): 
    return "Hello World!" 

if __name__ == "__main__": 
    app.run(host='0.0.0.0') 

Auch wenn Sie den Debug-Modus aktivieren möchten, die Ausnahmen/Fehler zu analysieren, während Sie Ihre Anwendung zugreifen. Sie können das Debug-Attribut auch auf 'True' setzen.

if __name__ == "__main__": 
    app.run(host='0.0.0.0', debug=True) 
+0

Das funktionierte wie ein Zauber, aber was bedeutet host = '0.0.0.0' eigentlich? – Echelon

+1

@Echelon Dies bedeutet, dass Ihr Server jetzt von jeder IP-Adresse aus erreichbar ist. –

+1

Wow. Beeindruckend. Wow Sehr, sehr danke :) – Nabin

0

Im Folgenden Code ermöglicht es Ihnen, Flask Bahn von einer öffentlichen IP

statt 127.0.0.1 für den Zugriff auf
if __name__ == '__main__': 
    app.run(host='0.0.0.0', debug='TRUE') 

standardmäßig Flask auf Port: 5000. Einige Zeit auf VM wird dieser Port blockiert werden. Um den Verkehr an diesem Port zuzulassen, führen Sie den folgenden Befehl aus.

iptables -I INPUT -p tcp --dport 5000 -j ACCEPT 
Verwandte Themen