web-dev-qa-db-fra.com

Python - Comment exécuter plusieurs applications flask depuis la même machine cliente)

J'ai un flask script d'application comme indiqué ci-dessous:

from flask import Flask
app = Flask(__name__)

@app.route("/<string:job_id>")
def main(job_id):
    return "Welcome!. This is Flask Test Part 1"

if __name__ == "__main__":
    job_id = 1234
    app.run(Host= '0.0.0.0')

J'ai un autre flask script d'application comme ci-dessous:

from flask import Flask
app = Flask(__name__)

@app.route("/<string:ID>")
def main(ID):
    return "Welcome!. This is Flask Test Part 2"

if __name__ == "__main__":
    ID = 5678
    app.run(Host= '0.0.0.0')

La seule différence entre les deux scripts est le nom de l'argument et sa valeur. Maintenant, ma question est de supposer que j'exécute le premier script. Je vais donc avoir quelque chose comme

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Lorsque j'exécute http://127.0.0.1:5000/1234 dans mon navigateur, je peux voir

"Bienvenue!. C'est Flask Test Part 1"

Maintenant que ce serveur est actif, j'exécute le deuxième script. Encore une fois, je reçois

* Running on http://0.0.0.0:5000/ (Press CTRL+C to quit)

Mais quand j'exécute http://127.0.0.1:5000/5678 dans mon navigateur, je peux voir

"Bienvenue!. C'est Flask Test Part 1"

au lieu de

"Bienvenue!. C'est Flask Test Part 2"

Je ne comprends pas où je fais erreur. Toutes les entrées ou modifications seront utiles

9
JKC

Serveur de développement Flask par défaut, écoute sur le port 5000. Ainsi, lorsque vous exécutez une application Flask sans numéro de port, elle s'exécute sur 5000.

Vous pouvez exécuter un certain nombre d'applications Flask sur la même machine mais avec un numéro de port différent. Disons que les noms de vos scripts sont script1.py et script2.py:

$ export FLASK_APP=script1.py
$ flask run --Host 0.0.0.0 --port 5000

Ouvrez un nouveau terminal

$ export FLASK_APP=script2.py
$ flask run --Host 0.0.0.0 --port 5001
10
metmirr

Avez-vous effacé la mémoire cache avant d'exécuter le deuxième script. Il y a des moments où le navigateur a stocké des données previos sur le port afin qu'il affiche les anciennes données.

Vous pouvez effacer la mémoire cache, puis exécuter le deuxième script. puis exécutez et voyez. J'espère que cela résoudra le problème

0
blank