Se hai creato un portfolio o un'applicazione prototipo con Django, ospitarlo gratuitamente su Vercel richiede solo pochi clic e una piccola parte di codice. Heroku era un vero toccasana, ma ha smesso di offrire hosting gratuito nel 2022.
Utilizzando Vercel, puoi distribuire la tua app direttamente da GitHub gratuitamente e chiunque può accedervi da qualsiasi luogo. Ecco come procedere.
Configura la tua app Django per Vercel
Dovrai configurare alcuni aspetti del tuo progetto Django prima di poterlo distribuire su Vercel.
Configura il file vercel.json
Innanzitutto, devi creare un file vercel.json nella cartella principale del tuo progetto per indirizzare Vercel all'interfaccia del gateway del server Web della tua app (WSGI):
{
"costruisce": [
{
"src": "django_app_name/wsgi.py",
"usa": "@vercel/python"
}
],
"itinerari": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}
Sostituire nome_app_django con il nome della tua app Django (lo stesso della cartella che contiene il file impostazioni.py file).
Rifattorizzare il file wsgi.py
Vercel non riconosce il applicazione variabile nel file wsgi.py. Per fortuna, l'unico cambiamento che farai per risolvere questo problema è passare il file applicazione variabile in Vercel as app.
Quindi refactoring della tua app wsgi.py file come mostrato:
importare os
da django.core.wsgi importare get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.impostazioni")
applicazione = get_wsgi_application()
app = applicazione
Connettiti a un database remoto
Se la tua app necessita del supporto del database, usa il provisioning di Vercel o crea un'istanza di database esterno da qualche parte. Per fortuna, ce ne sono molti database PostgreSQL gratuito opzioni in linea. Puoi anche connettersi a un cluster MongoDB se preferisci un database NoSQL.
Tuttavia, qui ci atterremo al cluster di database PostgreSQL di Railway poiché offre un credito iniziale ed è facile da configurare.
Per configurare un'istanza PostgreSQL su Railway:
- Visitare il Ferrovia sito web per creare un account.
- Clic Inizia un nuovo progetto.
- Selezionare Provisioning di PostgreSQL.
- Clicca il Postgres banner per visualizzare le variabili del database e le stringhe di connessione.
- Vai al Variabili scheda. Poi copia e incolla il file DATABASE_URL string in un editor di testo per formattarlo. Assicurati di sostituire i segnaposto nel file DATABASE_URL stringa con i valori della variabile appropriati.
- Copia le variabili rimanenti e configura il tuo database nel tuo Django impostazioni.py file, come mostrato di seguito. Ricordarsi di sostituire i nomi delle variabili con i valori appropriati forniti da Railway.
DATABASE = {
'predefinito': {
'MOTORE': 'django.db.backends.postgresql',
'URL': "URL_DATABASE",
'NOME': 'PGDATABASE',
'UTENTE': 'PGUSER',
'PAROLA D'ORDINE': 'PGP PASSWORD',
'OSPITE': 'PGHOST',
'PORTA': PGPORT,
}
}
Prendere in considerazione mascherare queste variabili segrete usare un .env file per rafforzare la sicurezza della tua app Django. Inoltre, Vercel ti consente di elencare le variabili di ambiente durante la distribuzione.
Quindi, una volta che usi il os.getenv metodo, Python recupera la variabile specificata dall'ambiente di hosting Vercel. Pertanto, la configurazione del tuo database diventa:
DATABASE = {
'predefinito': {
'MOTORE': 'django.db.backends.postgresql',
'URL': os.getenv("URL_POSTGRES"),
'NOME': os.getenv("NOMEPG"),
'UTENTE': os.getenv('PGUSER'),
'PAROLA D'ORDINE': os.getenv('POSTGRES_PASSWORD'),
'OSPITE': os.getenv('PGHOST'),
'PORTA': os.getenv('PGPORT),
}
}
Distribuisci il tuo repository GitHub su Vercel
La seconda parte di questo processo prevede il puntamento di Vercel al tuo repository su GitHub. Dopo averlo fatto, la tua app sarà attiva e chiunque potrà accedere al tuo sito Web a un URL generato da Vercel.
Crea un file dei requisiti
Vercel cerca di trovare e installare le dipendenze del tuo progetto all'interno del file requisiti.txt file durante la distribuzione. Tuttavia, ricorda che la scrittura di dipendenze da a ambiente virtuale in requisiti.txt è sempre più facile che dallo spazio globale.
Crea un file requirements.txt nella cartella principale del progetto utilizzando il seguente comando tramite il terminale:
pip freeze > requisiti.txt
Collega il tuo repository a Vercel
Vercel funziona tenendo traccia delle modifiche in un repository. Quindi il primo passaggio di distribuzione è invia il tuo codice a GitHub o qualsiasi altro sistema di controllo della versione che funzioni meglio per te. Ignora questo passaggio se il tuo codice è già su GitHub.
Per iniziare su Vercel:
- Iscriviti su Sito web di Vercelli utilizzando il tuo account GitHub. Segui le istruzioni sullo schermo per completare la registrazione dell'account per iniziare.
- Successivamente, seleziona l'opzione Account Hobby per utilizzare Vercel gratuitamente.
- Una volta effettuato l'accesso, fare clic su Aggiungere nuova. Quindi fare clic Progetto.
- Quindi, fai clic Aggiungi account GitHub dal Importa repository Git sezione. Oppure puoi cliccare Cambia provider Git se usi un altro controllo di versione oltre a GitHub.
- Clic Tutti i repository. Quindi fare clic Installare.
- Seleziona il tuo account GitHub dall'elenco.
- Vercel rileverà automaticamente i tuoi repository. Clic Importare a destra di quello che riporta il tuo progetto Django.
- Clicca il variabili ambientali menu a discesa per elencare le variabili di ambiente su Vercel. Questi possono includere la chiave segreta dell'app e le stringhe di connessione al database. Compila il Nome campo con il nome della variabile. Quindi inserisci il suo valore in Valore campo.
- Clic Aggiungere per creare un nuovo campo e aggiungere altre variabili di ambiente.
- Infine, fai clic Distribuisci. La tua app dovrebbe essere attiva in alcuni momenti. Fai clic sull'URL a destra dell'icona web per visitare il tuo nuovo sito web.
Una volta implementato, Vercel tiene traccia delle modifiche successive inviate al ramo principale per rifletterle nella versione live. Pertanto, devi solo distribuire le modifiche a GitHub per aggiornare la tua app in tempo reale.
Mentre Vercel genera automaticamente un URL per il tuo sito Web Django, puoi anche eseguire la distribuzione utilizzando un nome di dominio personalizzato. Quindi considera acquisto di un nome di dominio da un registrar se ne hai bisogno.
Ospita gratuitamente il tuo sito Web Django
A volte, ci vuole più di un repository GitHub per impressionare potenziali datori di lavoro e clienti. Mentre un repository forte e coerente mostra la tua competenza, la visualizzazione di una versione live del tuo portfolio o del prototipo del progetto ti presenta come un realizzatore.
Ospitare un progetto che non genera entrate è spesso scoraggiante. Ma per fortuna, Vercel è uno dei pochi servizi di web hosting gratuiti. E hai visto come distribuire il tuo progetto Django gratuitamente sulla piattaforma. Anche se l'URL generato sembra disordinato, puoi incollarlo nel ReadMe del tuo progetto su GitHub per mostrare alle persone come funziona la tua creazione.