Hvis du har bygget en portefølje eller prototypeapplikasjon med Django, er det bare noen få klikk og en liten kodebit unna å hoste den gratis på Vercel. Heroku pleide å være en livredder, men den sluttet å tilby gratis hosting i 2022.
Ved å bruke Vercel kan du distribuere appen din direkte fra GitHub gratis, og hvem som helst kan få tilgang til den fra hvor som helst. Slik går du frem.
Konfigurer Django-appen din for Vercel
Du må konfigurere noen få aspekter av Django-prosjektet ditt før du kan distribuere det til Vercel.
Konfigurer filen vercel.json
Først må du opprette en vercel.json-fil i prosjektets rotmappe for å peke Vercel til appens webserver-gateway-grensesnitt (WSGI):
{
"bygger": [
{
"src": "django_app_name/wsgi.py",
"bruk": "@vercel/python"
}
],
"ruter": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}
Erstatte django_app_name med Django-appens navn (det samme som mappen som inneholder settings.py fil).
Refaktorer filen wsgi.py
Vercel gjenkjenner ikke applikasjon variabel i filen wsgi.py. Heldigvis er den eneste endringen du vil gjøre for å løse dette problemet å bestå applikasjon variabel inn i Vercel as app.
Så refaktorer appen din wsgi.py fil som vist:
import os
fra django.core.wsgi import get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
application = get_wsgi_application()
app = applikasjon
Koble til en ekstern database
Hvis appen din trenger databasestøtte, bruk Vercels levering eller spin opp en ekstern databaseforekomst et sted. Heldigvis er det mange gratis PostgreSQL-database alternativer på nettet. Du kan også koble til en MongoDB-klynge hvis du foretrekker en NoSQL-database.
Vi vil imidlertid holde oss til Railways PostgreSQL-databaseklynge her siden den tilbyr en startkreditt og er enkel å sette opp.
Slik setter du opp en PostgreSQL-forekomst på jernbane:
- Besøk Jernbane nettsted for å opprette en konto.
- Klikk Start et nytt prosjekt.
- Plukke ut Tilveiebring PostgreSQL.
- Klikk på Postgres banner for å se databasevariablene og tilkoblingsstrengene.
- Gå til Variabler fanen. Deretter kopierer og limer du inn DATABASE_URL streng inn i et tekstredigeringsprogram for å formatere den. Sørg for at du erstatter plassholderne i DATABASE_URL streng med de riktige variabelverdiene.
- Kopier de resterende variablene og sett opp databasen din i Django settings.py fil, som vist nedenfor. Husk å erstatte variabelnavnene med de riktige verdiene som er gitt av Railway.
DATABASER = {
'misligholde': {
'MOTOR': 'django.db.backends.postgresql',
'URL': 'DATABASE_URL',
'NAVN': 'PGDATABASE',
'BRUKER': 'PGUSER',
'PASSORD': 'PGPASSWORD',
'VERT': 'PGHOST',
'HAVN': PGPORT,
}
}
Ta i betraktning maskering av disse hemmelige variablene bruker en .env fil for å øke Django-appens sikkerhet. Dessuten lar Vercel deg liste opp miljøvariablene dine under distribusjon.
Så når du først bruker os.getenv metode, henter Python den angitte variabelen fra Vercel-vertsmiljøet. Dermed blir databaseoppsettet ditt:
DATABASER = {
'misligholde': {
'MOTOR': 'django.db.backends.postgresql',
'URL': os.getenv('POSTGRES_URL'),
'NAVN': os.getenv('PGNAME'),
'BRUKER': os.getenv('PGUSER'),
'PASSORD': os.getenv('POSTGRES_PASSWORD'),
'VERT': os.getenv('PGHOST'),
'HAVN': os.getenv('PGPORT),
}
}
Distribuer GitHub-depotet ditt på Vercel
Den andre delen av denne prosessen innebærer å peke Vercel til depotet ditt på GitHub. Når du har gjort det, vil appen din være live, og alle kan få tilgang til nettstedet ditt på en URL som Vercel genererer.
Opprett en kravfil
Vercel prøver å finne og installere prosjektets avhengigheter i krav.txt fil under distribusjon. Husk imidlertid at skriveavhengigheter fra en virtuelt miljø inn i krav.txt er alltid enklere enn fra det globale rommet.
Opprett en requirements.txt-fil i prosjektets rotmapp ved å bruke følgende kommando via terminalen:
pip freeze > requirements.txt
Koble depotet ditt til Vercel
Vercel fungerer ved å spore endringer i et depot. Så det første distribusjonstrinnet er å push koden din til GitHub eller et annet versjonskontrollsystem som fungerer best for deg. Ignorer dette trinnet hvis koden din allerede er på GitHub.
For å komme i gang med Vercel:
- Registrer deg på Vercels nettsted ved å bruke din GitHub-konto. Følg instruksjonene på skjermen for å fullføre kontoregistreringen for å komme i gang.
- Deretter velger du Hobby-kontoalternativet for å bruke Vercel gratis.
- Når du er logget inn, klikker du Legg til ny. Klikk deretter Prosjekt.
- Klikk deretter Legg til GitHub-konto fra Importer Git Repository seksjon. Eller du kan klikke Bytt Git-leverandør hvis du bruker en annen versjonskontroll enn GitHub.
- Klikk Alle depoter. Klikk deretter Installere.
- Velg GitHub-kontoen din fra listen.
- Vercel vil automatisk oppdage lagrene dine. Klikk Import til høyre for den som har Django-prosjektet ditt.
- Klikk på Miljøvariabler rullegardinmenyen for å liste opp miljøvariablene dine på Vercel. Disse kan inkludere appens hemmelige nøkkel og databasetilkoblingsstrenger. Fyll ut Navn feltet med variabelnavnet. Skriv deretter inn verdien i Verdi felt.
- Klikk Legg til for å opprette et nytt felt og legge til andre miljøvariabler.
- Klikk til slutt Utplassere. Appen din bør være aktiv om noen øyeblikk. Klikk på URL-en til høyre for nettikonet for å besøke det nye nettstedet ditt.
Når den er distribuert, sporer Vercel påfølgende endringer som er presset til hovedgrenen for å gjenspeile dem i live-versjonen. Derfor trenger du bare å distribuere endringene dine til GitHub for å oppdatere appen din i sanntid.
Mens Vercel automatisk genererer en URL for Django-nettstedet ditt, kan du også distribuere ved å bruke et tilpasset domenenavn. Så vurder kjøpe et domenenavn fra en registrar hvis du trenger en.
Host Django-nettstedet ditt uten kostnad
Noen ganger krever det mer enn et GitHub-depot for å imponere potensielle arbeidsgivere og kunder. Mens et sterkt og sammenhengende depot viser kompetansen din, presenterer visning av en liveversjon av porteføljen din eller prosjektprototypen deg som en oppnår.
Å være vertskap for et prosjekt som ikke genererer inntekter er ofte nedslående. Men heldigvis er Vercel en av få gratis webhotelltjenester. Og du har sett hvordan du distribuerer Django-prosjektet ditt gratis på plattformen. Selv om den genererte URL-en ser uryddig ut, kan du lime den inn i prosjektets ReadMe på GitHub for å vise folk hvordan skapelsen din fungerer.