2016-05-07 31 views
11

Sono un ingegnere software junior e sono abbastanza nuovo per Django. Ho creato this app e sto lavorando su un README per spiegare agli altri come eseguire il fork, clonare e configurare l'app sulle proprie macchine. Mi sono bloccato mentre cercavo di ricreare i passaggi.Come eseguire il progetto clonato Django?

Questo è l'ordine in cui ho disegnato su per le scale:

  1. Forcella e clonare il repo
  2. Fonte un ambiente virtuale
  3. Pip installare requirements.txt
  4. Ottenere access_token e secret_key e store in secrets.sh
  5. Imposta un DB Postgres, crea utente & database
  6. Migra te (?) - Questo è dove mi blocco!

Ho provato a migrare l'app ma non ci sono migrazioni da applicare.

Ho provato 'django-admin startproject ig_miner_app. ma sono sempre questo codice di errore:

"CommandError: /Users/Erin/Desktop/CodeByEAllard/project/instagram_miner/manage.py esiste già, sovrapponendo un progetto o applicazione in una directory esistente non sostituirà file in conflitto"

Se riesco a ottenere questo risolto, dovrei essere in grado di eseguire il server come normale, giusto?

Sono sicuro che mi manca qualcosa (o molte cose) ma non so cosa siano. Mi sento sciocco perché sono stato ovviamente in grado di creare l'app in primo luogo, ma non riesco a capire come spiegare a qualcun altro di fare lo stesso! Qualcuno ha suggerimenti su come far funzionare il server?

Grazie!

+2

Perché stai usando 'startproject'? Hai già un progetto! Che errore ricevi durante l'esecuzione di 'manage.py migrate'? – kaveh

+0

Ho appena eseguito 'startproject' perché non riuscivo a pensare ad altro da provare. Questo è l'errore che ottengo quando eseguo 'python manage.py migrate': Traceback (ultima chiamata ultima): File "manage.py", riga 8, in da django.core.management import execute_from_command_line ImportError: Nessun modulo chiamato django.core.management – allardbrain

+0

Hai attivato il tuo ambiente virtuale? – kaveh

risposta

11

Prima di tutto, si stanno ottenendo che errore perché si avvia un progetto all'interno della stessa directory come il progetto clonato, questa directory contiene già un app con il nome ig_miner_app da qui il nome conflitto.

Per quanto riguarda le fasi di esecuzione del progetto da parte di altri utenti, questo dovrebbe funzionare.

clone progetto

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

creare e avviare aa ambiente virtuale

virtualenv env --no-site-packages 

source env/bin/activate 

Installare le dipendenze di progetto:

pip install -r requirements.txt 

creare un file denominato "secrets.sh"

touch secrets.sh (mac e linux)

ottenere un segreto dalla chiave MiniWebTool e aggiungere ai segreti.sh

export SECRET_KEY='<secret_key>' 

add secrets.sh a .gitignore file di

creare un Postgres db e aggiungere le credenziali per settings.py

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

quindi eseguire

python manage.py migrate 

creare amministrazione account

python manage.py createsuperuser 

poi

python manage.py makemigrations ig_miner_app 

al makemigrations per l'applicazione

poi di nuovo gestita

python manage.py migrate 

per avviare il server di sviluppo

python manage.py runserver 

e localhost aperta: 8000 sul browser per competere w l'app.

Credo che questo dovrebbe far funzionare l'app sulle macchine degli altri. Fammi sapere se rimani bloccato su uno di questi passaggi, quindi apporto le modifiche, in caso contrario, puoi semplicemente utilizzarlo e aggiungere qualsiasi altra informazione pertinente che non avrei potuto aggiungere.

+0

Grazie Bernard! Non ho mai creato un superutente! Ho intenzione di provare questa soluzione adesso e ti faccio sapere come va. :-) – allardbrain

+0

GRAZIE, Bernard! Ha funzionato! Sono profondamente grato per il tuo aiuto dettagliato. – allardbrain

+0

Fantastico. In qualsiasi momento !!! –

0

cercano di passare il nome dell'applicazione per il comando migrate:

manage.py migrate ig_miner_app 
+0

Questo è il messaggio di errore ottengo quando provo a farlo: Traceback (chiamata più recente scorso): file "manage.py", linea 8, in da django.core.management execute_from_command_line importazione ImportError: Nessun modulo chiamato django.core.management – allardbrain

0

come hai detto, una volta che si clonare il pronti contro termine, è necessario installare i requisiti

pip install -r requirements.txt 

Dopo di che è necessario configurare il database. Aggiungi i dettagli a settings.py

Una volta eseguito e hai le chiavi e i segreti, devi effettuare le migrazioni e quindi eseguire la migrazione.

cd nella directory applicazione ed eseguire

python manage.py makemigrations 

per creare file di migrazione per i modelli già definiti nei codici che hai clonati. successivamente è necessario eseguire

python manage.py migrate 

per applicare le migrazioni che di fatto creano le tabelle del database.

Ora si apportano modifiche nei modelli o si aggiungono modelli o campi aggiuntivi, è necessario eseguire nuovamente gli ultimi due comandi.

1

Hey @allardbrain e benvenuti nel meraviglioso mondo di sviluppo^_^

Mentre la mia speranza è che questo problema è stato risolto, ormai, se posso, cerchiamo di rivisitare qualcosa di reale quick-- sono sicuro altri hanno fatto e, stanno facendo questo errore.

I tried 'django-admin startproject ig_miner_app . but am getting this error code:

"CommandError:" bla bla bla ...

Django ha effettivamente Documentazione STUPEFACENTE.I ragazzi dietro di esso erano in realtà scrittori e giornalisti e non i tipici ragazzi di CS.

Quello che sto cercando di dire è, quando si impara qualcosa di nuovo, leggere la documentazione; esegui il tutorial delle app To-Do. Ecco perché ..

django-admin startproject 

Questo è già stato soddisfatto se si sta tirando una copia di lavoro di un'applicazione preesistente. La vostra preoccupazione dovrebbe essere con questo file prima di tutto ...

requirements.txt 

Questo è dove le devDependencies affermano le loro richieste, se si vuole, simile alla vostra base

package.json 

Ad ogni modo, ho solo dicendo questo perché ho passato i primi anni della mia carriera testarda e spesso mi sorprendevo sfogliando documenti e, alla fine della giornata, creando mal di testa per me stesso e per i poveri bastardi incaricati di supervisionare il mio culo incantato :-) Grandi momenti, quelli. ..

Cheers Everyon e