web-dev-qa-db-fra.com

Comment exécuter un projet Django cloné?

Je suis un ingénieur en informatique junior et je suis assez nouveau pour Django. J'ai construit cette application et je travaille sur un README pour expliquer aux autres comment fourchir, cloner et configurer l'application sur leurs propres machines. Je me suis retrouvé coincé en essayant de recréer les étapes.

Voici l'ordre dans lequel j'ai tracé les étapes:

  1. Fork et cloner le repo
  2. Source un environnement virtuel
  3. Pip installer exigences.txt
  4. Obtenir access_token et secret_key et stocker dans secrets.sh
  5. Configurer une base de données Postgres, créer un utilisateur et une base de données
  6. Migrer (?) - C'est là que je reste bloqué! 

J'ai essayé de migrer l'application, mais il n'y a pas de migration à appliquer.

J'ai essayé 'Django-admin startproject ig_miner_app. mais je reçois ce code d'erreur:

"CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py existe déjà, superposer un projet ou une application dans un répertoire existant ne remplacera pas les fichiers en conflit"

Si je peux résoudre ce problème, je devrais pouvoir faire fonctionner le serveur normalement, non?

Je suis sûr qu'il me manque quelque chose (ou beaucoup de choses) mais je ne sais pas ce que c'est. Je me sens bête parce que j'ai évidemment pu créer l'application au départ, mais je ne peux pas comprendre comment expliquer à quelqu'un d'autre de faire de même! Y at-il des suggestions sur la façon de faire fonctionner le serveur?

Je vous remercie!

17
allardbrain

Tout d'abord, vous obtenez cette erreur car vous démarrez un projet dans le même répertoire que le projet cloné, ce répertoire contient déjà une application avec le nom ig_miner_app d'où le conflit de nom. 

En ce qui concerne les étapes d'exécution du projet par d'autres utilisateurs, cela devrait fonctionner.

cloner le projet 

git clone https://github.com/erinallard/instagram_miner.git 

créer et démarrer un environnement virtuel

virtualenv env --no-site-packages

source env/bin/activate

Installez les dépendances du projet:

pip install -r requirements.txt

créer un fichier nommé "secrets.sh"

touch secrets.sh (mac et linux)

obtenir un secret de MiniWebTool key et ajouter à secrets.sh

export SECRET_KEY='<secret_key>'

ajouter secrets.sh au fichier .gitignore

créer une base de données postgres et ajouter les informations d'identification à settings.py

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.postgresql_psycopg2',
        'NAME': 'db_name',
        'USER': 'name',
        'PASSWORD': '',
        'Host': 'localhost',
        'PORT': '',
    }
}

puis courir

python manage.py migrate

créer un compte administrateur

python manage.py createsuperuser

puis

python manage.py makemigrations ig_miner_app

faire des migrations pour l'application

puis à nouveau courir

python manage.py migrate

pour démarrer le serveur de développement

python manage.py runserver

et ouvrez localhost: 8000 sur votre navigateur pour voir l'application.

Je crois que l'application devrait être opérationnelle sur les machines des autres. Faites-moi savoir si vous êtes bloqué sur l'une de ces étapes afin que je fasse des modifications, sinon, vous pouvez simplement l'utiliser et ajouter toute autre information pertinente que je n'aurais pas pu ajouter.

20
Bernard Parah

Bonjour @allardbrain et bienvenue dans le monde merveilleux du développement ^ _ ^ 

Bien que j'espère que ce problème est maintenant résolu, si vous me le permettez, revenons à quelque chose de très rapide - je suis sûr que d'autres l'ont déjà fait et commettent actuellement cette erreur.

J'ai essayé 'Django-admin startproject ig_miner_app. mais je reçois ce code d'erreur:

"CommandError:" yadda yadda yadda ... 

Django a en réalité une documentation incroyable. Les auteurs de ce projet étaient en réalité des écrivains et des journalistes, et non les types classiques de CS. 

Ce que j'essaie de dire, c'est que lorsque vous apprenez quelque chose de nouveau, lisez la documentation; parcourez le didacticiel de l'application To-Do. Voici pourquoi.. 

Django-admin startproject

Cela a déjà été satisfait si vous extrayez une copie de travail d'une application préexistante. Votre préoccupation devrait être avec ce fichier d'abord et avant tout ...

requirements.txt

C'est là que les devDependencies énoncent leurs demandes, si vous voulez, comme votre base 

package.json 

Quoi qu'il en soit, je ne fais que dire cela parce que j'ai passé les premières années de ma carrière à me perdre à me faufiler entre docs et, à la fin de la journée, à créer des maux de tête pour moi-même et les pauvres salauds chargés de surveiller mes fesses agitées: - ) Grands moments, ceux ...

Salut tout le monde 

1
Abraxas

Comme vous l'avez dit, une fois le référentiel cloné, vous devez installer la configuration requise.

pip install -r requirements.txt

Après cela, vous devez configurer la base de données. Ajouter les détails à settings.py

Une fois que cela a été fait et que vous avez les clés et les secrets, vous devez effectuer des migrations puis migrer.

cd dans le répertoire de l'application et exécutez

python manage.py makemigrations

créer des fichiers de migration pour les modèles déjà définis dans les codes que vous avez clonés. après ça il faut courir

python manage.py migrate

appliquer les migrations qui créent en réalité les tables de la base de données.

Maintenant que vous apportez des modifications aux modèles ou ajoutez des modèles ou des champs supplémentaires, vous devez exécuter les deux dernières commandes à nouveau.

0
sprksh

essayez de passer le nom de l'application à la commande migrate:

manage.py migrate ig_miner_app
0
ahmed

Je fais les démarches suivantes après avoir cloné le projet à partir de GitHub:

pip3 install virtualenv
virtualenv -p python3 env
source env/bin/activate
pip install Django
django-admin startproject <mysite>
python manage.py startapp polls 
python manage.py runserver
on terminal: python manage.py makemigrations <app_name>
python manage.py migrate

Ceux-ci fonctionnent bien sur mon système. 

0
Nidhi Garg