Installer Django sur un Vm Vagrant

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Bonjour, j'ai une VM Vagrant configurer avec PuPHPpet, et j'aimerais installé Django, le soucis étant que lorsque je fais un runserver, donc mon projet est théoriquement accessible selon Python à l'adresse 127.0.0.1:8000, sauf que j'obtiens une page web inaccessible j'ai essayer de faire un runserver ipdemavm; mais j'obtiens toujours la même chose …

+0 -0
Auteur du sujet

Salut,

Tu essayes d'y accéder depuis la vm ou depuis ton pc ?

As tu essayé plutot runserver 0.0.0.0:8000 ?

grugru

Euh… je suis débutant sous Django du coup j'ai commencé le tuto et il dise de faire un runserver, donc je pense que j'y accède depuis le pc et non la VM

+0 -0

Normalement quand on est débutant, on suit le tutoriel. Il n'est pas mentionné dans le tutoriel d'utiliser une vm je crois ;)

En fait lorsque tu lances le serveur de test de django, celui ne se rend accessible qu'en localhost. Du coup, si tu lance le serveur dans une machine virtuel, et que tu tente d'y accéder depuis ton pc qui est donc different de ta vm, ca ne fonctionne pas. Une façon de verifier que c'est bien le problème est de lancer le serveur en le rendant accessible au réseau local :

1
python manage.py runserver 0.0.0.0:8000
+0 -0
Auteur du sujet

Normalement quand on est débutant, on suit le tutoriel. Il n'est pas mentionné dans le tutoriel d'utiliser une vm je crois ;)

En fait lorsque tu lances le serveur de test de django, celui ne se rend accessible qu'en localhost. Du coup, si tu lance le serveur dans une machine virtuel, et que tu tente d'y accéder depuis ton pc qui est donc different de ta vm, ca ne fonctionne pas. Une façon de verifier que c'est bien le problème est de lancer le serveur en le rendant accessible au réseau local :

1
python manage.py runserver 0.0.0.0:8000

grugru

Non mais je suis juste débutant en Python hein ! J'utilise des VM depuis quelques temps déjà x) Cà ne fonctionne pas en 0.0.0.0:8000 x) j'ai déjà essayé !

Juste comme ça, tu n'aurais pas oublié de faire un vagrant up par hasard ? Et c'est quoi la config de ton Vagrant file ?

firm1

Non quand même x) J'ai fait le vagrant up puis un ssh et enfin un p'tit pip install django x)

+0 -0

Bonjour,

Sinon pour le problème initial - depuis la VM en ssh, il faudrait faire: runserver 0.0.0.0:8000. Cela rend le serveur de test accessible depuis toutes les ips de la machine (ici la VM). Depuis le navigateur du PC hôte faire un http://ip.de.la.vm:8000 avec l'ip de la VM configurée dans le vagrantfile pour accéder à l'application Django.

Le plus rapidement possible dés le début d'un projet, utiliser Vagrant+Ansible me parait être une bonne solution (néanmoins, cela ne change pas le fait qu'il faille interroger la bonne ip…). On ne travaille plus du tout avec le serveur de test de Django (lancé par runserver) mais directement sur un serveur web de production (typiquement apache ou nginx) lancé depuis un VM vagrant provisionnée par Ansible de façon parfaitement maitrisée. Prévoir le push du deploy à ce moment là me parait aussi être une bonne idée. :)

Un peu lourd à mettre en place au début mais une fois que l'on a l'habitude on peut se créer des templates de projets complets permettant de gagner en temps de dev.

Bonne journée

Édité par iNaKoll

+0 -1
Auteur du sujet

Bonjour,

Sinon pour le problème initial - depuis la VM en ssh, il faudrait faire: runserver 0.0.0.0:8000. Cela rend le serveur de test accessible depuis toutes les ips de la machine (ici la VM). Depuis le navigateur du PC hôte faire un http://ip.de.la.vm:8000 avec l'ip de la VM configurée dans le vagrantfile pour accéder à l'application Django.

Le plus rapidement possible dés le début d'un projet, utiliser Vagrant+Ansible me parait être une bonne solution (néanmoins, cela ne change pas le fait qu'il faille interroger la bonne ip…). On ne travaille plus du tout avec le serveur de test de Django (lancé par runserver) mais directement sur un serveur web de production (typiquement apache ou nginx) lancé depuis un VM vagrant provisionnée par Ansible de façon parfaitement maitrisée. Prévoir le push du deploy à ce moment là me parait aussi être une bonne idée. :)

Un peu lourd à mettre en place au début mais une fois que l'on a l'habitude on peut se créer des templates de projets complets permettant de gagner en temps de dev.

Bonne journée

iNaKoll

Merci je vais tester tout sa, de plus je travaille bien sous VM, avec Nginx pour le coup x) du coup runserver est inutile d'après ce que j'ai compris ! Du coté de Ansible je ne connais pas du tout je vais me renseigner sur ce que c'est x)

Edit : ; Ansible serait pour l'automatisation des push de git ?!

ReEdit : J'ai essayé de lancer runserver 0.0.0.0:8000 et d'accéder sur mon naivgateur via l'IP de ma VM mais pareil, mais vu que j'accéde à mes VM via une URL de type django.dev == Ip de la VM j'ai tenté django.dev:8000, mais c'est la même chose, cette histoire me donne du fil à retordre!

Édité par Ayekan

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte