99 votes

Manage.py runserver

Je lance python manage.py runserver à partir d'une machine A quand j'essaie de vérifier sur machine B. L'URL que j'ai tapée est http://A:8000/.

Je reçois une erreur comme Le système a renvoyé: (111) Connexion refusée

2 votes

4 votes

Par défaut, il utilise l'adresse localhost (127.0.0.1), qui n'accepte pas les connexions provenant d'autres machines sur le réseau. 127.x.x.x est considéré comme son propre réseau, et un ordinateur ne fait pas de routage entre celui-ci et ses autres interfaces à moins qu'on ne lui dise explicitement de le faire. Par conséquent, se connecter à partir d'un autre réseau ne trouvera pas le port ouvert. Ce que vous voulez est ./manage.py runserver A:8000.

180voto

Pol Points 2445

Vous pouvez l'exécuter pour les machines de votre réseau en

./manage.py runserver 0.0.0.0:8000

Ensuite, vous pourrez accéder à votre serveur depuis n'importe quelle machine de votre réseau. Il vous suffit de taper sur une autre machine dans le navigateur http://192.168.0.1:8000192.168.0.1 est l'IP de votre serveur... et il est prêt à fonctionner....

ou dans votre cas:

  1. Sur la machine A dans la ligne de commande ./manage.py runserver 0.0.0.0:8000
  2. Ensuite, essayez sur la machine B dans le navigateur tapez http://A:8000
  3. Prenez une gorgée de bière.

Source des docs de Django

0 votes

Oui. C'est exactement ce que je fais. J'exécute django dans ma machine virtuelle Ubuntu, puis je m'y connecte depuis ma machine hôte Windows pour tester sous Windows.

0 votes

Pour moi, cela fonctionne comme une horloge. J'ai aussi Ubuntu. Et mon ami a Windows 7. Essayez de ping votre hôte d'abord. Et assurez-vous d'avoir correctement ajusté votre VM!

2 votes

J'utilise cette version de la commande afin de pouvoir accéder au serveur de développement Django sur mon Mac depuis ma machine virtuelle Parallels WinXP.

24voto

Jason Webb Points 3121

Vous devez indiquer à manage.py l'adresse IP locale et le port auquel se connecter. Quelque chose comme python manage.py runserver 192.168.23.12:8000. Ensuite, utilisez la même adresse IP et le même port depuis l'autre machine. Vous pouvez en savoir plus à ce sujet ici dans la documentation.

1 votes

Merci pour la réponse, mais je reçois toujours une erreur comme Erreur : Cette adresse IP ne peut pas être attribuée.

1 votes

Vous pouvez avoir quelque chose reliant ce port sur l'adresse IP externe. Essayez peut-être un autre port. Assurez-vous également de ne pas avoir de pare-feu bloquant la connexion.

6voto

Amrendra Points 321

Je me débattais avec le même problème et j'ai trouvé une solution. Je suppose que cela peut vous aider. lorsque vous exécutez python manage.py runserver, il prendra 127.0.0.1 comme adresse IP par défaut et 8000. 127.0.0.0 est la même chose que localhost qui peut être accédé localement. pour y accéder depuis une origine croisée, vous devez l'exécuter sur votre adresse IP système ou 0.0.0.0. 0.0.0.0 peut être accédé depuis n'importe quelle origine dans le réseau. pour le numéro de port, vous devez définir la stratégie entrante et sortante de votre système si vous souhaitez utiliser votre propre numéro de port et pas celui par défaut.

Pour ce faire, vous devez exécuter le serveur avec la commande python manage.py runserver 0.0.0.0: comme mentionné ci-dessus

ou, définissez une adresse IP et un port par défaut dans votre environnement python. Pour cela, consultez ma réponse sur django change default runserver port

Amusez-vous à coder .....

4voto

benrules2 Points 337

Juste au cas où certains utilisateurs de Windows rencontrent des problèmes, j'ai pensé ajouter mon propre expérience. Lorsque j'ai exécuté python manage.py runserver 0.0.0.0:8000, je pouvais afficher les URL en utilisant localhost:8000, mais pas mon adresse IP 192.168.1.3:8000.

J'ai fini par désactiver l'IPv6 sur mon adaptateur sans fil et exécuter ipconfig /renew. Après cela, tout a fonctionné comme prévu.

3voto

wuxueqian Points 64

Dans flask en utilisant flask.ext.script, vous pouvez le faire de cette manière:

python manage.py runserver -h 127.0.0.1 -p 8000

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X