Je veux implémenter une commande qui peut arrêter l'application flask en utilisant flask-script. J'ai cherché la solution pendant un moment. Parce que le framework ne fournit pas l'API "app.stop ()", je suis curieux de savoir comment coder cela. Je travaille sur Ubuntu 12.10 et Python 2.7.3.
104
Réponses:
Si vous exécutez simplement le serveur sur votre bureau, vous pouvez exposer un point de terminaison pour tuer le serveur (en savoir plus sur Shutdown The Simple Server ):
Voici une autre approche plus contenue:
Faites-moi savoir si cela vous aide.
la source
methods='POST'
, j'obtiens une405 Method not allowed
erreur, alors qu'avec methods = 'GET'`, cela fonctionne comme @CS suggéré.Je l'ai fait légèrement différemment en utilisant des fils
Je l'utilise pour faire des tests de bout en bout pour une api reposante, où je peux envoyer des requêtes à l'aide de la bibliothèque de requêtes python.
la source
C'est un fil un peu ancien, mais si quelqu'un expérimente, apprend ou teste une application flask de base, a commencé à partir d'un script qui s'exécute en arrière-plan, le moyen le plus rapide de l'arrêter est de tuer le processus en cours d'exécution sur le port sur lequel vous exécutez votre application. sur. Remarque: je sais que l'auteur cherche un moyen de ne pas tuer ou d'arrêter l'application. Mais cela peut aider quelqu'un qui apprend.
Vous obtiendrez quelque chose comme ça.
Pour arrêter l'application, arrêtez le processus
la source
Ma méthode peut être effectuée via le terminal / console bash
1) exécuter et obtenir le numéro de processus
2a) Tuez le processus
2b) Tuez le processus si ci-dessus ne fonctionne pas
la source
kill -9 `lsof -i:5000 -t`
rien d'autre qu'une seule application ne peut utiliser le port et c'est facile.Comme d'autres l'ont souligné, vous ne pouvez utiliser qu'à
werkzeug.server.shutdown
partir d'un gestionnaire de requêtes. Le seul moyen que j'ai trouvé pour arrêter le serveur à un autre moment est de vous envoyer une demande. Par exemple, le/kill
gestionnaire de cet extrait de code tuera le serveur de développement à moins qu'une autre requête n'entre dans la seconde suivante:la source
C'est une vieille question, mais la recherche sur Google ne m'a pas permis de savoir comment y parvenir.
Parce que je n'ai pas lu correctement le code ici ! (Doh!) Ce qu'il fait, c'est élever un
RuntimeError
quand il n'y a paswerkzeug.server.shutdown
dans lerequest.environ
...Donc, ce que nous pouvons faire quand il n'y a pas,
request
c'est d'élever unRuntimeError
et attraper ça quand
app.run()
revient:Pas besoin de vous envoyer une demande.
la source
Vous n'êtes pas obligé d'appuyer sur "CTRL-C", mais vous pouvez fournir un point de terminaison qui le fait pour vous:
Vous pouvez maintenant simplement appeler ce point de terminaison pour arrêter le serveur en douceur:
la source
os.kill
, la réponse retournée ne peut pas être reçue par le client. Pourcurl
, il génère "curl: (56) Recv failure: Connection was reset". Voir aussi Exécuter une fonction après que Flask a renvoyé une réponse pour la résoudre.Vous pouvez utiliser la méthode ci-dessous
la source
Si vous travaillez sur la CLI et n'avez qu'une seule application / processus flask en cours d'exécution (ou plutôt, vous voulez simplement tuer tout processus flask en cours d'exécution sur votre système), vous pouvez le tuer avec:
kill $(pgrep -f flask)
la source
Si vous êtes en dehors du traitement des demandes-réponses, vous pouvez toujours:
la source
Instance de VM Google Cloud + application Flask
J'ai hébergé mon application Flask sur la machine virtuelle Google Cloud Platform. J'ai démarré l'application en utilisant
python main.py
Mais le problème était que ctrl + c ne fonctionnait pas pour arrêter le serveur.Cette commande
$ sudo netstat -tulnp | grep :5000
met fin au serveur.L'application My Flask s'exécute sur le port 5000 par défaut.
Remarque: mon instance de VM s'exécute sous Linux 9.
Cela fonctionne pour cela. Je n'ai pas testé pour d'autres plates-formes. N'hésitez pas à mettre à jour ou à commenter si cela fonctionne également pour d'autres versions.
la source
Pour Windows, il est assez facile d'arrêter / de tuer le serveur flask -
la source