Om du har byggt en portfölj eller prototypapplikation med Django, är det bara några klick och en liten bit kod bort att vara värd för den gratis på Vercel. Heroku brukade vara en livräddare, men det slutade erbjuda gratis hosting 2022.
Med Vercel kan du distribuera din app direkt från GitHub gratis, och vem som helst kan komma åt den var som helst. Så här går du tillväga.
Konfigurera din Django-app för Vercel
Du måste konfigurera några aspekter av ditt Django-projekt innan du kan distribuera det till Vercel.
Konfigurera filen vercel.json
Först måste du skapa en vercel.json-fil i ditt projekts rotmapp för att peka Vercel till din app webbserver-gateway-gränssnitt (WSGI):
{
"bygger": [
{
"src": "django_app_name/wsgi.py",
"use": "@vercel/python"
}
],
"rutter": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}
Byta ut django_app_name med din Django-apps namn (samma som mappen som innehåller settings.py fil).
Refaktorera filen wsgi.py
Vercel känner inte igen Ansökan variabel i filen wsgi.py. Tack och lov är den enda förändringen du kommer att göra för att lösa detta problem att klara av Ansökan variabel till Vercel as app.
Så refaktorera din app wsgi.py fil som visas:
importera os
från django.core.wsgi importera get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
application = get_wsgi_application()
app = applikation
Anslut till en fjärrdatabas
Om din app behöver databasstöd, använd Vercels tillhandahållande eller spin upp en extern databasinstans någonstans. Tack och lov är det många gratis PostgreSQL-databas alternativ online. Du kan också ansluta till ett MongoDB-kluster om du föredrar en NoSQL-databas.
Vi kommer dock att hålla oss till Railways PostgreSQL-databaskluster här eftersom det erbjuder en startkredit och är lätt att ställa in.
Så här ställer du in en PostgreSQL-instans på järnväg:
- Besök Järnväg webbplats för att skapa ett konto.
- Klick Starta ett nytt projekt.
- Välj Tillhandahåll PostgreSQL.
- Klicka på Postgres banner för att se dina databasvariabler och anslutningssträngar.
- Gå till Variabler flik. Kopiera och klistra sedan in DATABASE_URL sträng i en textredigerare för att formatera den. Se till att du byter ut platshållarna i DATABASE_URL sträng med lämpliga variabelvärden.
- Kopiera de återstående variablerna och ställ in din databas i din Django settings.py fil, som visas nedan. Kom ihåg att ersätta variabelnamnen med lämpliga värden som tillhandahålls av Railway.
DATABASER = {
'standard': {
'MOTOR': 'django.db.backends.postgresql',
"URL": 'DATABASE_URL',
'NAMN': 'PGDATABASE',
'ANVÄNDARE': 'PGUSER',
'LÖSENORD': 'PGPASSWORD',
'VÄRD': "PGHOST",
'HAMN': PGPORT,
}
}
Överväga maskera dessa hemliga variabler använder en .env fil för att stärka din Django-apps säkerhet. Dessutom låter Vercel dig lista dina miljövariabler under driftsättning.
Så när du väl använder os.getenv metod, hämtar Python den angivna variabeln från Vercels värdmiljö. Din databasinställning blir alltså:
DATABASER = {
'standard': {
'MOTOR': 'django.db.backends.postgresql',
"URL": os.getenv('POSTGRES_URL'),
'NAMN': os.getenv('PGNAME'),
'ANVÄNDARE': os.getenv('PGUSER'),
'LÖSENORD': os.getenv('POSTGRES_PASSWORD'),
'VÄRD': os.getenv("PGHOST"),
'HAMN': os.getenv('PGPORT),
}
}
Distribuera ditt GitHub-förråd på Vercel
Den andra delen av denna process involverar att peka Vercel till ditt förråd på GitHub. När du har gjort det kommer din app att vara live och vem som helst kan komma åt din webbplats på en URL som Vercel genererar.
Skapa en kravfil
Vercel försöker hitta och installera ditt projekts beroenden inuti krav.txt fil under driftsättning. Kom dock ihåg att skrivberoenden från en virtuell miljö in i krav.txt är alltid lättare än från det globala rymden.
Skapa en requirements.txt-fil i din projektrotmapp med följande kommando via terminalen:
pip freeze > requirements.txt
Anslut ditt arkiv till Vercel
Vercel fungerar genom att spåra ändringar i ett arkiv. Så det första implementeringssteget är att skicka din kod till GitHub eller något annat versionskontrollsystem som fungerar bäst för dig. Ignorera det här steget om din kod redan finns på GitHub.
För att komma igång med Vercel:
- Anmäl dig på Vercels hemsida med ditt GitHub-konto. Följ instruktionerna på skärmen för att slutföra kontoregistreringen för att komma igång.
- Välj sedan alternativet Hobby-konto för att använda Vercel gratis.
- När du är inloggad klickar du Lägg till ny. Klicka sedan Projekt.
- Klicka sedan Lägg till GitHub-konto från Importera Git Repository sektion. Eller så kan du klicka Byt Git-leverantör om du använder en annan versionskontroll än GitHub.
- Klick Alla förråd. Klicka sedan Installera.
- Välj ditt GitHub-konto från listan.
- Vercel kommer automatiskt att upptäcka dina arkiv. Klick Importera till höger om den som bär ditt Django-projekt.
- Klicka på Miljövariabler rullgardinsmenyn för att lista dina miljövariabler på Vercel. Dessa kan inkludera appens hemliga nyckel och databasanslutningssträngar. Fyll i namn fältet med variabelnamnet. Ange sedan dess värde i Värde fält.
- Klick Lägg till för att skapa ett nytt fält och lägga till andra miljövariabler.
- Klicka slutligen Distribuera. Din app bör vara live om några ögonblick. Klicka på webbadressen till höger om webbikonen för att besöka din nya webbplats.
När den väl har distribuerats spårar Vercel efterföljande ändringar som skickas till huvudgrenen för att återspegla dem i liveversionen. Därför behöver du bara distribuera dina ändringar till GitHub för att uppdatera din app i realtid.
Medan Vercel automatiskt genererar en URL för din Django-webbplats, kan du också distribuera med ett anpassat domännamn. Så överväg köpa ett domännamn från en registrar om du behöver en.
Host din Django-webbplats utan kostnad
Ibland krävs det mer än ett GitHub-förråd för att imponera på potentiella arbetsgivare och kunder. Medan ett starkt och sammanhängande arkiv visar din kompetens, visar en liveversion av din portfölj eller projektprototyp dig som en prestation.
Att vara värd för ett projekt som inte genererar intäkter är ofta nedslående. Men tack och lov är Vercel en av få gratis webbhotelltjänster. Och du har sett hur du distribuerar ditt Django-projekt gratis på plattformen. Även om den genererade URL: en ser stökig ut, kan du klistra in den i ditt projekts ReadMe på GitHub för att visa folk hur ditt skapande fungerar.