Come ospitare gratuitamente il tuo sito web Python su Heroku

Quindi hai appena completato un semplice sito Web di portfolio con Python e desideri installarlo utilizzando l'hosting gratuito. Hai sentito parlare dell'hosting gratuito di Heroku, ma non capisci bene i tecnicismi coinvolti.

Questa guida ti aiuterà a lavorare attraverso l'intero processo di hosting gratuito del tuo sito Web Python su Heroku, in un modo molto più semplice. Partiamo dal presupposto che tu abbia una conoscenza di base di Python e almeno uno dei suoi framework — preferibilmente Django.

Heroku è un provider di web hosting Platform as a Service (PaaS) che gestisce la sua infrastruttura su qualcosa che chiama Dynos. Ti mantiene concentrato sulla distribuzione, mentre si prende cura della difficoltà di mantenere e costruire la tua infrastruttura web.

Nel caso in cui non puoi permetterti l'hosting a pagamento ma desideri creare rapidamente un portfolio online, potresti prendere in considerazione l'hosting su Heroku. Oltre a venire gratuitamente, è abbastanza veloce mettere il tuo sito web su Heroku.

Naturalmente, ci sono altre piattaforme in cui puoi ospitare gratuitamente il tuo sito Web Python, come Amazon Web Services e PythonAnywhere. Ma il processo di hosting su Heroku è facile, specialmente per le persone senza una conoscenza preliminare della distribuzione.

Quando ospiti un sito web gratuitamente su Heroku, non devi necessariamente avere un nome di dominio. Tutto ciò di cui hai bisogno è specificare il nome della tua app sulla piattaforma di hosting. Heroku crea quindi un localizzatore app.herokuapp.com per te. Quando sei su questo servizio gratuito, il tuo sito funziona su Heroku Dynos.

Se in seguito decidi di aumentare e ottenere un nome di dominio, è altrettanto facile e veloce, ma devi pagare per questo. Il costo enorme per mantenere l'aggiornamento potrebbe indurti a ripensarlo, ma ne vale la pena se sei determinato a investire di più nel progetto.

Esaminiamo ora come ospitare gratuitamente il tuo sito Web Python su Heroku. Nota che questo è basato sulla versione 3.7 di Python e sulla versione 2.1.7 di Django.

Per iniziare, scarica Git dal sito Web git-scm . Qui vengono spiegati i vari comandi e colpi di scena per installare Git su tutti i sistemi operativi.

Dopo aver installato Git, devi anche configurare un account con Heroku nella pagina di registrazione di Heroku se non ne hai già uno.

Quindi, scarica e installa la CLI di Heroku dal sito Web di Heroku. La CLI di Heroku ti consente di comunicare con il tuo repository ogni volta che devi applicare modifiche alla tua app.

Se non hai già familiarità con i comandi Git, dovresti dare un'occhiata alla nostra introduzione al controllo della versione con Git .

Se non hai un progetto Django configurato e vuoi provarlo con questo tutorial, apri la riga di comando e crea un ambiente virtuale se non ne hai ancora uno. Una volta che l'ambiente virtuale è pronto, usa questo comando per installare il framework Django:

Dopo aver installato Django nell'ambiente virtuale, eseguire il comando seguente per avviare un nuovo progetto Django:

Quindi, crea una nuova app Python. Per farlo, migra nella cartella principale del tuo progetto su CMD ed esegui:

Ricordati di sostituire project_name e app_name con i tuoi nomi preferiti.

Hai bisogno del modulo gunicorn per questo, quindi dovresti anche eseguire pip install gunicorn . Quindi aggiungi gunicorn all'elenco delle app installate in settings.py , come mostrato di seguito:

Questa è solo un'introduzione superficiale alla creazione di un'app Django. Tuttavia, se la tua app è pronta o ne stai solo costruendo una, assicurati che la tua esecuzione python manage.py esegua la migrazione per creare il database.

Ora dovresti avere un'app Python in esecuzione nel tuo framework Django. Ora ci immergeremo nel nostro obiettivo principale.

Per avere una corretta distribuzione della tua app su Heroku, devi impostare un file requirements.txt . Per configurarlo, esegui quanto segue sul tuo CMD:

Quella riga crea un file .txt che contiene tutti i pacchetti utilizzati per servire il tuo progetto. Heroku esamina quel file durante la distribuzione e installa automaticamente quei pacchetti.

Un altro file importante che devi specificare è Procfile . Questo dice a Heroku i comandi da eseguire durante l'inizializzazione dell'app. Tuttavia, è necessario creare questo file creando esplicitamente un nuovo file di testo denominato Procfile nella radice del progetto. Assicurati che questo file non abbia un'estensione di file; altrimenti non funzionerà.

Per rimuovere l'estensione del file da Procfile in Windows, aprire la cartella in Esplora file, fare clic su Visualizza nella barra degli strumenti in alto e selezionare la casella Estensioni nome file . Vedrai quindi le estensioni per tutti i file, inclusa l'estensione .txt per Procfile . Fai clic con il pulsante destro del mouse su Procfile e scegli Rinomina , quindi rimuovi semplicemente l'estensione .txt e premi Invio .

Quindi, apri il Procfile e aggiungi la seguente riga, sostituendo project_name con il nome che si applica al tuo progetto:

Facoltativamente, puoi anche creare un file runtime.txt . Apri il file e specifica la versione di Python come segue:

È così che dici a Heroku la versione di Python su cui gira la tua app. Se non specifichi questo file, Heroku utilizza solo l'ultima versione di Python per impostazione predefinita.

Successivamente, nel prompt dei comandi, accedi al tuo account Heroku eseguendo questo comando:

Questo comando apre il tuo browser predefinito alla pagina di accesso di Heroku, dove puoi fornire le tue credenziali di accesso.

Per creare un'app su Heroku, digita la seguente riga:

Sostituisci ademosapp2 con il nome della tua app preferita. Se il nome dell'app selezionata è in uso, vedrai un messaggio che ti chiede di scegliere un nuovo nome.

Nella pagina di accesso, fai clic sul logo Heroku per accedere alla dashboard di Heroku. Ora dovresti vedere l'app che hai appena creato.

Quindi, apri il tuo editor di testo preferito nella posizione del tuo progetto e vai in settings.py del tuo progetto. Nel file settings.py , modifica l' host consentito in [*] — questo rende la tua app accessibile a qualsiasi host globale.

Ora vai nella dashboard di Heroku e fai clic sull'app appena creata, seguita dalle impostazioni . Nelle impostazioni, scorri verso il basso e fai clic su Aggiungi buildpack . Quindi seleziona Python come buildpack e fai clic su Salva modifiche .

Quindi, torna al tuo CMD ed esegui il seguente codice per installare Heroku nel tuo progetto:

Ora aggiungi il pacchetto appena installato al file requirements.txt eseguendo:

Quindi, apri il file settings.py del tuo progetto e digita:

Inoltre, sull'ultima riga di settings.py , attiva django-heroku aggiungendo:

Una volta fatto, avvia un repository remoto digitando quanto segue nella riga di comando:

Successivamente, crea un repository di app Heroku eseguendo:

Per controllare i file che devono essere salvati, eseguire:

Quindi, digita il seguente comando per aggiungere tutte le modifiche al tuo repository:

Una volta aggiunte le modifiche, invia le modifiche a Heroku eseguendo il comando:

Nota che "initial-commit" può usare qualsiasi nome tu voglia.

Successivamente, dovresti disabilitare collectstatic usando quanto segue:

In caso contrario, potrebbero verificarsi problemi durante il processo di distribuzione.

Per inviare finalmente i tuoi file al tuo repository Heroku, usa il comando:

Questo invia tutti i tuoi file a Heroku e rende l'app accessibile da qualsiasi luogo. Per vedere la tua app appena distribuita, vai su https://app_name.herokuapp.com nel tuo browser, sostituendo app_name con il nome della tua app.

Puoi ospitare una varietà di build di app su Heroku; gli stessi processi Git che abbiamo trattato qui funzionano per altri linguaggi oltre a Python. Hai solo bisogno di apportare piccole modifiche, come resettare il tuo pacchetto di build.

Sebbene Heroku ti offra hosting gratuito, sappiamo tutti che i contenuti gratuiti hanno alcune limitazioni. Tuttavia, se non ti aspetti che il tuo sito web riceva molto traffico, l'hosting gratuito di Heroku potrebbe essere una buona opzione.