Lezers zoals jij steunen MUO. Wanneer u een aankoop doet via links op onze site, kunnen we een aangesloten commissie verdienen. Lees verder.

Als je een portfolio of prototype-applicatie hebt gebouwd met Django, is het gratis hosten ervan op Vercel slechts een paar klikken en een klein stukje code verwijderd. Heroku was vroeger een redder in nood, maar stopte met het aanbieden van gratis hosting in 2022.

Met Vercel kunt u uw app gratis rechtstreeks vanuit GitHub implementeren en heeft iedereen er overal toegang toe. Hier leest u hoe u dit aanpakt.

Configureer uw Django-app voor Vercel

U moet enkele aspecten van uw Django-project configureren voordat u het in Vercel kunt implementeren.

Configureer het bestand vercel.json

Eerst moet u een vercel.json-bestand in de hoofdmap van uw project maken om Vercel naar de webservergateway-interface (WSGI) van uw app te verwijzen:

{
"bouwt": [
{
"src": "django_app_name/wsgi.py",
"gebruik": "@vercel/python"
}
],
"routes": [
{
"src": "/(.*)",
"dest": "django_app_name/wsgi.py"
}
]
}

Vervangen django_app_naam met de naam van uw Django-app (hetzelfde als de map met de instellingen.py bestand).

Herstructureer het wsgi.py-bestand

Vercel herkent de sollicitatie variabele in het bestand wsgi.py. Gelukkig is de enige wijziging die u kunt aanbrengen om dit probleem op te lossen, het passeren van de sollicitatie variabele in Vercel as app.

Dus refactor uw app's wsgi.py bestand zoals getoond:

importeren os
van django.core.wsgi importeren get_wsgi_application
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "django_blog.instellingen")
toepassing = get_wsgi_toepassing()
app = toepassing

Maak verbinding met een externe database

Als uw app database-ondersteuning nodig heeft, gebruik dan de voorziening van Vercel of start ergens een externe database-instantie. Gelukkig zijn er veel gratis PostgreSQL-database online opties. Je kan ook verbinding maken met een MongoDB-cluster als u de voorkeur geeft aan een NoSQL-database.

We houden het hier echter bij het PostgreSQL-databasecluster van Railway, omdat het een starttegoed biedt en eenvoudig in te stellen is.

Een PostgreSQL-instantie instellen op Railway:

  1. Bezoek de Spoorweg website om een ​​account aan te maken.
  2. Klik Start een nieuw project.
  3. Selecteer PostgreSQL voorzien.
  4. Klik op de Postgres banner om uw databasevariabelen en verbindingsreeksen te zien.
  5. Ga naar de Variabelen tabblad. Kopieer en plak vervolgens de DATABASE_URL tekenreeks in een teksteditor om het op te maken. Zorg ervoor dat u de tijdelijke aanduidingen in het DATABASE_URL tekenreeks met de juiste variabele waarden.
  6. Kopieer de resterende variabelen en stel je database in je Django in instellingen.py bestand, zoals hieronder weergegeven. Vergeet niet om de variabelenamen te vervangen door de juiste waarden zoals geleverd door Railway.
    DATABANKEN = {
    'standaard': {
    'MOTOR': 'django.db.backends.postgresql',
    'URL': 'DATABASE_URL',
    'NAAM': 'PGDATABASE',
    'GEBRUIKER': 'PGUSER',
    'WACHTWOORD': 'PGWACHTWOORD',
    'GASTHEER': 'PGHOST',
    'HAVEN': PGPOORT,
    }
    }

Overwegen maskeren van deze geheime variabelen gebruik maken van een .env bestand om de beveiliging van uw Django-app te verbeteren. Bovendien kunt u met Vercel uw omgevingsvariabelen weergeven tijdens de implementatie.

Dus als je eenmaal de os.getenv methode haalt Python de opgegeven variabele op uit de Vercel-hostingomgeving. Zo wordt uw database-instelling:

DATABANKEN = {
'standaard': {
'MOTOR': 'django.db.backends.postgresql',
'URL': os.getenv('POSTGRES_URL'),
'NAAM': os.getenv('PGNAME'),
'GEBRUIKER': os.getenv('PGUSER'),
'WACHTWOORD': os.getenv('POSTGRES_WACHTWOORD'),
'GASTHEER': os.getenv('PGHOST'),
'HAVEN': os.getenv('PGPORT),
}
}

Implementeer uw GitHub-repository op Vercel

Het tweede deel van dit proces omvat het verwijzen van Vercel naar uw repository op GitHub. Zodra je dit hebt gedaan, is je app live en heeft iedereen toegang tot je website via een URL die Vercel genereert.

Maak een bestand met vereisten

Vercel probeert de afhankelijkheden van uw project te vinden en te installeren in het vereisten.txt bestand tijdens de implementatie. Onthoud echter dat het schrijven van afhankelijkheden van a virtuele omgeving naar binnen vereisten.txt is altijd makkelijker dan vanuit de globale ruimte.

Maak een requirements.txt-bestand in de hoofdmap van uw project met behulp van de volgende opdracht via de terminal:

pip bevriezen > vereisten.txt

Verbind uw repository met Vercel

Vercel werkt door wijzigingen in een repository bij te houden. Dus de eerste implementatiestap is om push je code naar GitHub of een ander versiebeheersysteem dat voor u het beste werkt. Negeer deze stap als je code al op GitHub staat.

Om aan de slag te gaan met Vercel:

  1. Schrijf je in op de Vercel-website met behulp van uw GitHub-account. Volg de instructies op het scherm om de accountregistratie te voltooien en aan de slag te gaan.
  2. Selecteer vervolgens de optie Hobby-account om Vercel gratis te gebruiken.
  3. Eenmaal ingelogd, klikt u op Nieuw toevoegen. Dan klikken projecteren.
  4. Klik vervolgens GitHub-account toevoegen van de Git-opslagplaats importeren sectie. Of je kunt klikken Verander van Git-provider als je naast GitHub een ander versiebeheer gebruikt.
  5. Klik Alle opslagplaatsen. Dan klikken Installeren.
  6. Selecteer uw GitHub-account in de lijst.
  7. Vercel zal uw repositories automatisch detecteren. Klik Importeren rechts van degene die uw Django-project draagt.
  8. Klik op de Omgevingsvariabelen vervolgkeuzelijst om uw omgevingsvariabelen op Vercel weer te geven. Deze kunnen de geheime sleutel van uw app en databaseverbindingsreeksen bevatten. Vul de Naam veld met de naam van de variabele. Voer vervolgens de waarde in de Waarde veld.
  9. Klik Toevoegen om een ​​nieuw veld aan te maken en andere omgevingsvariabelen toe te voegen.
  10. Klik ten slotte Aanwenden. Uw app zou binnen enkele ogenblikken live moeten zijn. Klik op de URL rechts van het webpictogram om uw nieuwe website te bezoeken.

Eenmaal geïmplementeerd, houdt Vercel volgende wijzigingen bij die naar de hoofdtak zijn gepusht om ze weer te geven in de live versie. Daarom hoeft u alleen uw wijzigingen in GitHub door te voeren om uw app in realtime bij te werken.

Terwijl Vercel automatisch een URL voor uw Django-website genereert, kunt u ook een aangepaste domeinnaam gebruiken. Overweeg dus een domeinnaam kopen bij een registrar als je er een nodig hebt.

Host uw Django-website gratis

Soms is er meer nodig dan een GitHub-repository om indruk te maken op potentiële werkgevers en klanten. Terwijl een sterke en coherente repository uw competentie laat zien, presenteert het weergeven van een live versie van uw portfolio of projectprototype u als een presteerder.

Een project hosten dat geen inkomsten genereert, is vaak ontmoedigend. Maar gelukkig is Vercel een van de weinige gratis webhostingservices. En je hebt gezien hoe je je Django-project gratis op het platform kunt inzetten. Hoewel de gegenereerde URL er slordig uitziet, kun je deze in het Leesmij-bestand van je project op GitHub plakken om mensen te laten zien hoe je creatie werkt.