web-dev-qa-db-de.com

Wie man ein geklontes Django-Projekt laufen lässt

Ich bin ein Junior-Software-Ingenieur und neu bei Django. Ich baute diese App und arbeite an einem README, um anderen zu erklären, wie man die App auf ihren eigenen Maschinen aufspalten, klonen und einrichten kann. Ich bin beim Versuch, die Schritte neu zu erstellen, stecken geblieben.

In dieser Reihenfolge habe ich die Schritte festgelegt:

  1. Reparieren und Reponieren
  2. Beschaffen Sie sich eine virtuelle Umgebung
  3. Installieren Sie die Datei Pipes.txt
  4. Rufen Sie access_token und secret_key ab und speichern Sie es in secrets.sh
  5. Richten Sie eine Postgres-Datenbank ein, erstellen Sie Benutzer und Datenbank
  6. Migrieren (?) - Hier stecke ich fest! 

Ich habe versucht, die App zu migrieren, es gibt jedoch keine Migrationen, die angewendet werden können.

Ich habe 'Django-Admin Startprojekt ig_miner_app ausprobiert. bekomme aber diesen Fehlercode:

"CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py ist bereits vorhanden. Wenn Sie ein Projekt oder eine Anwendung in ein vorhandenes Verzeichnis einfügen, werden in Konflikt stehende Dateien nicht ersetzt."

Wenn ich das erledigen kann, sollte ich den Server wie gewohnt ausführen können, richtig?

Ich bin sicher, mir fehlt etwas (oder viele Dinge), aber ich weiß nicht, was es ist. Ich fühle mich dumm, weil ich offensichtlich in der Lage war, die App zu erstellen, aber ich kann nicht herausfinden, wie ich dies jemandem erklären kann! Gibt es Vorschläge, wie der Server zum Laufen gebracht werden kann?

Vielen Dank!

17
allardbrain

Zunächst einmal erhalten Sie diese Fehlermeldung, weil Sie ein Projekt im selben Verzeichnis wie das geklonte Projekt starten. Dieses Verzeichnis enthält bereits eine App mit dem Namen ig_miner_app, daher der Namenskonflikt. 

In Bezug auf die Schritte zum Ausführen des Projekts durch andere Benutzer sollte dies funktionieren.

klonen Sie das Projekt 

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

erstellen und starten Sie eine virtuelle Umgebung

virtualenv env --no-site-packages

source env/bin/activate

Installieren Sie die Projektabhängigkeiten:

pip install -r requirements.txt

erstellen Sie eine Datei mit dem Namen "secrets.sh"

touch secrets.sh (mac und linux)

erhalten Sie ein Geheimnis von MiniWebTool key und fügen Sie es zu secrets.sh hinzu

export SECRET_KEY='<secret_key>'

fügen Sie der .gitignore-Datei die Datei secrets.sh hinzu

erstellen Sie eine Postgres-Datenbank und fügen Sie die Anmeldeinformationen zu settings.py hinzu

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

dann renne

python manage.py migrate

administratorkonto erstellen

python manage.py createsuperuser

dann

python manage.py makemigrations ig_miner_app

für die App zu machen

dann wieder laufen

python manage.py migrate

um den Entwicklungsserver zu starten

python manage.py runserver

und öffnen Sie localhost: 8000 in Ihrem Browser, um die App anzuzeigen.

Ich glaube, dies sollte die App auf den Rechnern anderer Benutzer zum Laufen bringen. Lassen Sie mich wissen, wenn Sie bei einem dieser Schritte stecken bleiben, also kann ich Änderungen vornehmen. Wenn nicht, können Sie es einfach verwenden und andere relevante Informationen hinzufügen, die ich möglicherweise nicht hinzugefügt habe.

20
Bernard Parah

Hey @allardbrain und willkommen in der Wonderful World of Development ^ _ ^ 

Ich hoffe zwar, dass dieses Problem inzwischen gelöst ist, aber wenn ich darf, lassen Sie uns etwas ganz schnell wieder besprechen. Ich bin sicher, andere haben es gemacht und machen derzeit diesen Fehler.

Ich habe 'Django-Admin Startprojekt ig_miner_app ausprobiert. bekomme aber diesen Fehlercode:

"CommandError:" yadda yadda yadda ... 

Django hat tatsächlich eine erstaunliche Dokumentation. Die Jungs dahinter waren eigentlich Schriftsteller und Journalisten und keine typischen CS-Jungs. 

Was ich versuche zu sagen, ist, wenn Sie etwas Neues lernen, lesen Sie die Dokumentation. durchlaufen Sie das To-Do App Tutorial. Hier ist der Grund.. 

Django-admin startproject

Dies ist bereits erfüllt, wenn Sie eine Arbeitskopie einer bereits vorhandenen Anwendung abrufen. Ihr Anliegen sollte in erster Linie diese Datei sein ...

requirements.txt

Hier geben die devDependencies, wenn Sie so wollen, ihre Anforderungen an, ähnlich wie bei Ihren Grundsätzen 

package.json 

Jedenfalls sage ich das nur, weil ich die ersten Jahre meiner Karriere hartnäckig verbracht habe und mich oft durch Docs gestreift habe, und am Ende des Tages Kopfschmerzen für mich und die armen Bastarde geschaffen habe, die damit beauftragt sind, meinen pummeligen Arsch zu überwachen: - ) Tolle Zeiten, diese ...

Prost alle 

1
Abraxas

Wie gesagt, sobald Sie das Repo geklont haben, müssen Sie die Voraussetzungen installieren

pip install -r requirements.txt

Danach müssen Sie die Datenbank konfigurieren. Fügen Sie die Details zu settings.py hinzu

Sobald dies geschehen ist und Sie über die Schlüssel und Geheimnisse verfügen, müssen Sie Migrationen durchführen und dann migrieren.

cd in das App-Verzeichnis und ausführen

python manage.py makemigrations

um Migrationsdateien für die Modelle zu erstellen, die bereits in den geklonten Codes definiert sind. danach musst du laufen

python manage.py migrate

um die Migrationen anzuwenden, wodurch die Datenbanktabellen erstellt werden.

Jetzt nehmen Sie Änderungen an Modellen vor oder fügen zusätzliche Modelle oder Felder hinzu. Sie müssen die letzten beiden Befehle erneut ausführen.

0
sprksh

Mein IDE scheint ein venv automatisch zu aktivieren, wenn es sich im Projektverzeichnis befindet, was dazu führte, dass ich beim Klonen von git ständig auf den Fehler stieß.

ModuleNotFoundError: No module named ''

Ich musste das ursprüngliche venv manuell löschen und ein neues virtuelles env erstellen, dann führte ich diese Befehle aus. Hat nachher wie ein PyCharm gewirkt :)

pip install -r requirements.txt

python manage.py collectstatic

0
TechBrad

versuchen Sie, den Anwendungsnamen an den Befehl migrate zu übergeben:

manage.py migrate ig_miner_app
0
ahmed

Nach dem Klonen des Projekts aus GitHub mache ich folgende Schritte:

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

Diese funktionieren gut auf meinem System. 

0
Nidhi Garg