Deploy!

Il seguente capitolo può essere difficile in alcuni passaggi. Non mollare e cerca di portarlo a termine; deployment (termine abbastanza complicato da tradurre, ma indica tutto ciò che tu rendi LIVE, accessibile sul web e non più solo dal tuo computer) è una parte importante nel processo di costruzione di un sito web. Questo capitolo è inserito a metà del tutorial per far sì che il tuo tutor possa aiutarti con il processo leggermente più complesso di messa online del sito. Questo significa che puoi ancora finire il tutorial da sola se sei a corto di tempo.

Fino ad ora il tuo sito è accessibile solo dal tuo computer, ma ora imparerai come metterlo online! Deploying è il processo di pubblicazione online del tuo progetto in modo tale che sia visibile anche da altre persone :).

Come hai già visto ogni sito internet deve essere ospitato su un server. Ci sono tantissimi server provider disponibili su internet. Noi ne useremo uno che ha un processo di deployment relativamente semplice: Heroku. Questo provider è gratuito per piccole applicazioni che non hanno troppi visitatori. Sarà quindi perfetto per te al momento.

Git

Git è un "sistema di controllo versione" utilizzato da molti programmatori. Questo software può tracciare le modifiche nel corso del tempo ad i file, in questo modo puoi ripristinare successivamente una specifica versione. Un po' come l'opzione "traccia modifiche" in Microsoft Word, ma molto più potente.

Inizializzare un repository Git

Git tiene traccia delle modifiche a un particolare insieme di file in quello che è chiamato repository di codice (o "repo" in breve). Iniziamone uno per il nostro progetto. Apri la console ed esegui questi comandi nella directory djangogirls:

controlla la directory su cui stai lavorando adesso con il comando pwd(OSX/Linux) oppure cd(Windows) prima di iniziare il repository. Dovresti essere nella cartella djangogirls.

command-line

Dobbiamo inizializzare il repository git solo una volta per ogni progetto (e non dovrai più reinserire il nome utente e l'email).

Git memorizzerà le modifiche a tutti i file e le cartelle in questa directory, ma ci sono alcuni file che vogliamo ignorare. Si fa creando un file chiamato .gitignore nella directory di base. Apri il tuo editor e crea un nuovo file con questo contenuto:

.gitignore

E salvalo come .gitignore all'interno della cartella "djangogirls".

Il punto all'inizio del nome del file è importante! Se hai difficoltà nel crearlo (ad esempio, ai Mac non piace quando crei file che iniziano con un punto tramite il Finder), allora usa la funzionalità "Salva con nome" nel tuo editor, è a prova di bomba.

Note Uno dei file che hai inserito nel tuo .gitignore è db.sqlite3. Quello è il tuo database locale dove tutti i tuoi post sono salvati. Non lo vogliamo aggiungere al tuo repository perchè Heroku userà un altro database. Il database può essere SQLite, come sulla tua macchina locale, ma generalmente userai PostgreSQL che può gestire molti più visitatori di SQLite. In ogni caso, ignorando il tuo database SQLite per la copia remota, ogni post che hai creato fino a questo punto continuerà ad essere visibile in locale, ma dovrai aggiungerne di nuovi in produzione. Devi pensare al tuo database locale come un posto sicuro dove testare cose nuove senza dover proccuparti di eliminare i tuoi veri post dal tuo blog.

È una buona idea usare il comando git status prima di git add oppure ogni volta che non sei sicura di cosa sia cambiato. Questo aiuterà ad evitare eventuali brutte sorprese, come file sbagliati che vengono aggiunti o a cui viene fatto il commit. Il comando git status restituisce informazioni riguardanti qualsiasi file non tracciato/modificato/in staging, lo stato del branch e molto altro. L'output dovrebbe essere simile a:

command-line

E finalmente salviamo le nostre modifiche. Vai alla tua console ed esegui questi comandi:

command-line

Carichiamo il nostro codice su Heroku

Per portare il nostro codice su Heroku la prima cosa che dobbiamo fare è autenticarci tramite la toolbelt di Heroku che hai installato durante il party:

command-line

Adesso abbiamo tutto quello che ci serve per gestire il nostro account da remoto!

Dobbiamo creare l'app che sarà il contenitore del nostro blog online, tutto ciò che ti serve è un nome originale:

command-line

Sostituisci a (comprese le parentesi <>) un nome per il tuo blog considerando che sarà quello che apparirà nella url come ad esempio https://<nome-del-blog>.herokuapp.com.

Warning Ricordati che il nome deve essere composto solo di caratteri minuscoli, numeri e -. Non sono ammessi altri caratteri, e in particolare non sono ammessi spazi nel nome.

L'ultima cosa che ci rimane da fare è caricare il nostro codice su Heroku e per farlo utilizzeremo git. Il prossimo comando che digiterai oltre a caricare il nostro codice sulla nostra app installerà Python, installerà per noi le dipendenze, raccoglierà i file statici e avvierà la nostra applicazione.

Quando sei pronta vai sulla command line e digita:

command-line

Se il comando precedente ti ha dato un errore prova a dare il seguente comando prima di riprovare:

command-line

Creare il database su Heroku

Ecco un'altra differenza tra il tuo computer ed il server: usa un database diverso. Quindi gli account utente ed i post possono essere diversi sul server rispetto a come appaiono sul tuo computer.

Possiamo creare il database sul server proprio come abbiamo fatto sul tuo computer, con migrate:

command-line

E creiamo anche il nostro account per il blog con createsuperuser:

command-line

Sei live!

Tutto pronto! Non ti resta che verificare: prova ad andare con il tuo browser su:

browser

La pagina predefinita per il tuo sito dovrebbe dire "Welcome to Django", esattamente come sul tuo Pc locale. Prova ad aggiungere /admin/ alla fine della URL, e verrai portata al sito di amministrazione. Accedi con il tuo username e password, e vedrai che puoi aggiungere nuovi Post sul server.

Da' a te stessa un'ENORME pacca sulla schiena! Il deploy dei server è tra le parti più complicate dello sviluppo web e di solito le persone ci impiegano svariati giorni prima di farli funzionare. Ma hai pubblicato il tuo sito su internet senza sforzo!

results matching ""

    No results matching ""