Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Hvis du har bygget en portefølje eller prototypeapplikation med Django, er hosting af den gratis på Vercel kun et par klik og en lille bid kode væk. Heroku plejede at være en livredder, men den stoppede med at tilbyde gratis hosting i 2022.

Ved at bruge Vercel kan du implementere din app direkte fra GitHub gratis, og alle kan få adgang til den hvor som helst. Sådan gør du det.

Konfigurer din Django-app til Vercel

Du skal konfigurere et par aspekter af dit Django-projekt, før du kan implementere det til Vercel.

Konfigurer filen vercel.json

Først skal du oprette en vercel.json-fil i dit projekts rodmappe for at pege Vercel til din apps webserver-gateway-grænseflade (WSGI):

{
"bygger": [
{
"src": "django_app_name/wsgi.py",
"brug": "@vercel/python"
}
],
"ruter": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}

Erstatte django_app_name med din Django-apps navn (det samme som mappen, der indeholder settings.py fil).

instagram viewer

Refaktorer filen wsgi.py

Vercel genkender ikke Ansøgning variabel i filen wsgi.py. Heldigvis er den eneste ændring, du vil foretage for at løse dette problem, at bestå Ansøgning variabel til Vercel as app.

Så refaktorer din apps wsgi.py fil som vist:

importere os
fra django.core.wsgi importere get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.settings")
application = get_wsgi_application()
app = applikation

Opret forbindelse til en fjerndatabase

Hvis din app har brug for databasesupport, skal du bruge Vercels levering eller oprette en ekstern databaseinstans et sted. Heldigvis er der mange Gratis PostgreSQL-database muligheder online. Du kan også oprette forbindelse til en MongoDB-klynge hvis du foretrækker en NoSQL-database.

Vi vil dog holde os til Railways PostgreSQL-databaseklynge her, da den tilbyder en startkredit og er nem at konfigurere.

Sådan opsætter du en PostgreSQL-instans på Railway:

  1. Besøg Jernbane websted for at oprette en konto.
  2. Klik Start et nyt projekt.
  3. Vælg Levering af PostgreSQL.
  4. Klik på Postgres banner for at se dine databasevariabler og forbindelsesstrenge.
  5. Gå til Variabler fanen. Kopier og indsæt derefter DATABASE_URL streng ind i en teksteditor for at formatere den. Sørg for at udskifte pladsholderne i DATABASE_URL streng med de relevante variabelværdier.
  6. Kopier de resterende variabler og opsæt din database i din Django settings.py fil, som vist nedenfor. Husk at erstatte variabelnavnene med de passende værdier som angivet af Railway.
    DATABASER = {
    'Standard': {
    'ENGINE': 'django.db.backends.postgresql',
    'URL': 'DATABASE_URL',
    'NAVN': 'PGDATABASE',
    'BRUGER': 'PGUSER',
    'ADGANGSKODE': 'PGPASSWORD',
    'VÆRT': 'PGHOST',
    'HAVN': PGPORT,
    }
    }

Overveje maskering af disse hemmelige variable ved hjælp af en .env fil for at øge din Django-apps sikkerhed. Desuden giver Vercel dig mulighed for at liste dine miljøvariabler under installationen.

Så når du først har brugt os.getenv metode, henter Python den angivne variabel fra Vercel-hostingmiljøet. Din databaseopsætning bliver således:

DATABASER = {
'Standard': {
'ENGINE': 'django.db.backends.postgresql',
'URL': os.getenv('POSTGRES_URL'),
'NAVN': os.getenv('PGNAME'),
'BRUGER': os.getenv('PGUSER'),
'ADGANGSKODE': os.getenv('POSTGRES_PASSWORD'),
'VÆRT': os.getenv('PGHOST'),
'HAVN': os.getenv('PGPORT),
}
}

Implementer dit GitHub-lager på Vercel

Den anden del af denne proces involverer at pege Vercel til dit lager på GitHub. Når du har gjort det, vil din app være live, og alle kan få adgang til dit websted på en URL, som Vercel genererer.

Opret en kravfil

Vercel forsøger at finde og installere dit projekts afhængigheder inde i krav.txt fil under installationen. Husk dog, at skriveafhængigheder fra en virtuelt miljø ind i krav.txt er altid nemmere end fra det globale rum.

Opret en requirements.txt-fil i din projektrodmappe ved hjælp af følgende kommando via terminalen:

pip freeze > requirements.txt

Tilslut dit lager til Vercel

Vercel fungerer ved at spore ændringer i et lager. Så det første implementeringstrin er at skub din kode til GitHub eller ethvert andet versionskontrolsystem, der fungerer bedst for dig. Ignorer dette trin, hvis din kode allerede er på GitHub.

Sådan kommer du i gang med Vercel:

  1. Tilmeld dig på Vercel hjemmeside ved hjælp af din GitHub-konto. Følg instruktionerne på skærmen for at fuldføre kontoregistreringen for at komme i gang.
  2. Vælg derefter Hobby-kontoindstillingen for at bruge Vercel gratis.
  3. Når du er logget ind, skal du klikke Tilføj ny. Klik derefter Projekt.
  4. Klik derefter Tilføj GitHub-konto fra Importer Git Repository afsnit. Eller du kan klikke Skift Git-udbyder hvis du bruger en anden versionskontrol udover GitHub.
  5. Klik Alle depoter. Klik derefter Installere.
  6. Vælg din GitHub-konto fra listen.
  7. Vercel vil automatisk opdage dine depoter. Klik Importere til højre for den, der bærer dit Django-projekt.
  8. Klik på miljøvariabler dropdown for at liste dine miljøvariabler på Vercel. Disse kan omfatte din apps hemmelige nøgle og databaseforbindelsesstrenge. Udfyld Navn felt med variabelnavnet. Indtast derefter dens værdi i Værdi Mark.
  9. Klik Tilføje at oprette et nyt felt og tilføje andre miljøvariabler.
  10. Klik til sidst Indsætte. Din app burde være live om nogle øjeblikke. Klik på URL-adressen til højre for webikonet for at besøge dit nye websted.

Når den er installeret, sporer Vercel efterfølgende ændringer, der er skubbet til hovedgrenen for at afspejle dem i liveversionen. Derfor behøver du kun at implementere dine ændringer til GitHub for at opdatere din app i realtid.

Mens Vercel automatisk genererer en URL til dit Django-websted, kan du også implementere ved hjælp af et tilpasset domænenavn. Så overvej at købe et domænenavn fra en registrator hvis du har brug for en.

Host dit Django-websted uden omkostninger

Nogle gange kræver det mere end et GitHub-lager for at imponere potentielle arbejdsgivere og kunder. Mens et stærkt og sammenhængende lager viser din kompetence, præsenterer visning af en live version af din portefølje eller projektprototype dig som en præst.

At være vært for et projekt, der ikke genererer indtægter, er ofte nedslående. Men heldigvis er Vercel en af ​​de få gratis webhostingtjenester. Og du har set, hvordan du implementerer dit Django-projekt gratis på platformen. Selvom den genererede URL ser rodet ud, kan du indsætte den i dit projekts ReadMe på GitHub for at vise folk, hvordan din skabelse fungerer.