99 votes

Manage.py runserver

Je lance python manage.py runserver à partir d'une machine A lorsque j'essaie de vérifier depuis la 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 des autres machines sur le réseau. 127.x.x.x est considéré comme son propre réseau, et un ordinateur ne route pas entre lui et ses autres interfaces à moins qu'on 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

Et 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 c'est prêt à être utilisé....

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. Faites une gorgée de bière.

Source de la documentation de Django

0 votes

Oui. C'est exactement ce que j'ai fait. J'exécute django dans ma machine virtuelle Ubuntu, puis je me connecte à celle-ci sur ma machine hôte Windows pour tester sur Windows.

0 votes

Pour moi, cela fonctionne comme sur des roulettes. J'ai aussi Ubuntu. Et mon ami a Windows 7. Essayez de pinguer votre hôte d'abord. Et assurez-vous d'avoir correctement configuré votre VM!

2 votes

Je utilise cette version de la commande pour 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 pourriez avoir quelque chose qui relie ce port à l'adresse IP externe. Essayez peut-être un autre port. Assurez-vous également que vous n'avez pas de pare-feu bloquant la connexion.

6voto

Amrendra Points 321

J'ai eu du mal avec le même problème et j'ai trouvé une solution. Je suppose que ça 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 que localhost qui peut être accédée localement. pour y accéder depuis un autre origine, 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 une politique d'entrée et de sortie de votre système si vous voulez utiliser votre propre numéro de port et non pas celui par défaut.

Pour cela, 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

Profitez de coder .....

4voto

benrules2 Points 337

Juste au cas où des utilisateurs Windows rencontrent des problèmes, j'ai pensé ajouter mon expérience personnelle. Lorsque j'ai exécuté python manage.py runserver 0.0.0.0:8000, je pouvais consulter 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 fonctionnait comme prévu.

3voto

wuxueqian Points 64

En utilisant flask avec flask.ext.script, vous pouvez le faire comme ceci :

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