Dus je hebt zojuist een eenvoudige portfoliowebsite met Python voltooid en je wilt deze gratis hosten. Je hebt gehoord over de gratis hosting van Heroku, maar je begrijpt de technische details niet helemaal.
Deze gids helpt je om het hele proces van het gratis hosten van je Python-website op Heroku te doorlopen, op een veel eenvoudigere manier. We gaan ervan uit dat je een basiskennis hebt van Python en ten minste één van zijn frameworks --- bij voorkeur Django.
Waarom kiezen voor Heroku?
Heroku is een Platform as a Service (PaaS) webhostingprovider die zijn infrastructuur draait op iets dat het Dynos noemt. Het houdt u gefocust op implementatie, terwijl het zorgt voor de moeilijkheid van het onderhouden en bouwen van uw webinfrastructuur.
Als u zich geen betaalde hosting kunt veroorloven, maar wel snel een online portfolio wilt opzetten, dan kunt u overwegen deze op Heroku te hosten. Naast dat het gratis is, is het vrij snel om je website op Heroku te plaatsen.
Natuurlijk zijn er andere platforms waar u uw Python-website gratis kunt hosten, zoals Amazon Web Services en PythonAnywhere. Maar het hosten op Heroku is eenvoudig --- vooral voor mensen zonder voorafgaande kennis van implementatie.
Wanneer je gratis een website host op Heroku, hoef je niet per se een domeinnaam te hebben. Het enige dat u hoeft te doen, is uw app-naam op het hostingplatform op te geven. Heroku maakt dan een app.herokuapp.com- locator voor je aan. Wanneer je gebruik maakt van deze gratis dienst, draait je site op Heroku Dynos.
Besluit je later om op te schalen en een domeinnaam te krijgen, dan is dat even makkelijk en snel, maar je moet er wel voor betalen. De overweldigende kosten van het onderhoud van de upgrade kunnen ertoe leiden dat u erover nadenkt, maar het is het geld waard als u vastbesloten bent meer in het project te investeren.
Laten we nu eens kijken hoe u uw Python-website gratis kunt hosten op Heroku. Merk op dat dit gebaseerd is op Python versie 3.7 en Django versie 2.1.7.
Git en Heroku . instellen
Download om te beginnen Git van de git-scm-website . De verschillende commando's en wendingen om Git op alle besturingssystemen te installeren, worden daar uitgelegd.
Nadat je Git hebt geïnstalleerd, moet je ook een account bij Heroku aanmaken op de Heroku-aanmeldingspagina als je er nog geen hebt.
Download en installeer vervolgens de Heroku CLI van de Heroku-website. Met de Heroku CLI kunt u elke keer dat u wijzigingen aan uw app moet doorvoeren, communiceren met uw repository.
Als je nog niet bekend bent met Git-commando's, bekijk dan onze inleiding tot versiebeheer met Git .
Een Django-project opzetten
Als je geen Django-project hebt opgezet en het wilt uitproberen met deze tutorial, open dan de opdrachtregel en maak een virtuele omgeving als je die nog niet hebt. Zodra de virtuele omgeving gereed is, gebruikt u deze opdracht om het Django-framework te installeren:
pip install django==2.1.7
Nadat Django in de virtuele omgeving is geïnstalleerd, voert u de volgende opdracht uit om een nieuw Django-project te starten:
django-admin.py startproject project_name
Maak vervolgens een nieuwe Python-app. Om dat te doen, migreert u naar de hoofdmap van uw project op de CMD en voert u het volgende uit:
python manage.py startapp app_name
Vergeet niet om project_name en app_name te vervangen door uw voorkeursnamen.
Je hebt hiervoor de gunicorn- module nodig , dus je moet ook pip install gunicorn uitvoeren . Voeg vervolgens gunicorn toe aan de lijst met geïnstalleerde apps in settings.py , zoals hieronder weergegeven:
Dit is slechts een oppervlakkige introductie tot het bouwen van een Django-app. Of uw app nu klaar is of u er net een aan het bouwen bent, zorg ervoor dat uw run python manage.py migreert om uw database te maken.
Je zou nu een Python-app moeten hebben die draait binnen je Django-framework. Nu duiken we in ons hoofddoel.
Uw app implementeren op Heroku
Voor een succesvolle implementatie van uw app bij Heroku moet u een requirements.txt- bestand instellen. Voer het volgende uit op uw CMD om het in te stellen:
pip freeze > requirements.txt
Die regel creëert een .txt- bestand dat alle pakketten bevat die worden gebruikt om uw project te bedienen. Heroku bekijkt dat bestand tijdens de implementatie en installeert die pakketten automatisch.
Een ander belangrijk bestand dat u moet specificeren, is het profiel . Dit vertelt Heroku de opdrachten die moeten worden uitgevoerd bij de initialisatie van de app. U moet dit bestand echter maken door expliciet een nieuw tekstbestand met de naam Profile in de hoofdmap van uw project te maken. Zorg ervoor dat dit bestand geen bestandsextensie heeft; anders werkt het niet.
Om de bestandsextensie uit het Profile in Windows te verwijderen, opent u de map in Verkenner, klikt u op Weergeven op de bovenste werkbalk en vinkt u het vakje Bestandsnaamextensies aan . U ziet dan de extensies voor alle bestanden, inclusief de .txt- extensie voor Profile . Klik met de rechtermuisknop op Procfile en kies Naam wijzigen , verwijder vervolgens eenvoudig de .txt- extensie en druk op Enter .
Next, het openstellen van de Procfile en voeg de volgende regel, ter vervanging van PROJECT_NAME met de naam die van toepassing is op uw project:
web: gunicorn project_name.wsgi
Optioneel kunt u ook een runtime.txt- bestand maken. Open het bestand en specificeer de Python-versie als volgt:
python-3.7.6
Zo vertel je Heroku de Python-versie waarop je app draait. Als je dit bestand niet opgeeft, gebruikt Heroku standaard alleen de nieuwste versie van Python.
Log vervolgens in de opdrachtprompt in op uw Heroku-account door deze opdracht uit te voeren:
heroku login
Die opdracht opent uw standaardbrowser naar de Heroku-inlogpagina, waar u uw inloggegevens kunt opgeven.
Typ de volgende regel om een app op Heroku te maken:
heroku create ademosapp2
Vervang ademosapp2 door uw favoriete app-naam. Als de naam van uw geselecteerde app in gebruik is, ziet u een bericht waarin u wordt gevraagd een nieuwe naam te kiezen.
Klik op de inlogpagina op het Heroku-logo om in te loggen op uw Heroku-dashboard. Je zou nu de app moeten zien die je zojuist hebt gemaakt.
Open vervolgens uw favoriete teksteditor op de locatie van uw project en ga naar settings.py van uw project . In de settings.py file, wijzigt het toegestaan Host aan [*] --- dit maakt uw app toegankelijk voor elke globale host.
Ga nu naar je Heroku-dashboard en klik op de nieuw gemaakte app, gevolgd door instellingen . Scroll in de instellingen naar beneden en klik op Add buildpack . Selecteer vervolgens Python als uw buildpack en klik op Wijzigingen opslaan .
Ga vervolgens terug naar je CMD en voer de volgende code uit om Heroku in je project te installeren:
pip install django-heroku
Voeg nu het nieuw geïnstalleerde pakket toe aan het bestand requirements.txt door het volgende uit te voeren:
pip freeze > requirements.txt
Open vervolgens het bestand settings.py van uw project en typ:
import django_heroku
Activeer op de laatste regel van settings.py django-heroku door toe te voegen:
django_heroku.settings(locals()) #ensure that you comment this line out after deployment
Zodra dat is gebeurd, start u een externe repository door het volgende in uw opdrachtregel te typen:
heroku init
Maak vervolgens een Heroku-app-repository door het volgende uit te voeren:
heroku git:remote -a ademosapp2 #replace ademosapp2 with your app's name
Voer het volgende uit om de bestanden te controleren die moeten worden vastgelegd:
git status
Typ vervolgens de volgende opdracht om alle wijzigingen aan uw repository toe te voegen:
git add --all
Nadat de wijzigingen zijn toegevoegd, legt u uw wijzigingen vast in Heroku door de opdracht uit te voeren:
git commit -m "initial-commit"
Merk op dat "initial-commit" elke gewenste naam kan gebruiken.
Vervolgens moet u collectstatic uitschakelen door het volgende te gebruiken:
heroku config:set DISABLE_COLLECTSTATIC=1
Anders kunt u tijdens het implementatieproces problemen tegenkomen.
Om eindelijk je bestanden naar je Heroku-repository te pushen, gebruik je de opdracht:
git push heroku master
Dit pusht al je bestanden naar Heroku en maakt de app overal toegankelijk. Om uw nieuw geïmplementeerde app te zien, gaat u naar https://app_name.herokuapp.com in uw browser en vervangt u app_name door de naam van uw app.
Kan Heroku een app hosten die niet op Python draait?
U kunt verschillende app-builds hosten op Heroku; dezelfde Git-processen die we hier hebben behandeld, werken voor andere talen dan Python. U hoeft slechts kleine wijzigingen aan te brengen, zoals het resetten van uw buildpack.
Hoewel Heroku je gratis hosting biedt, weten we allemaal dat gratis inhoud een aantal beperkingen heeft. Als u echter niet verwacht dat uw website veel verkeer zal ontvangen, kan gratis Heroku-hosting een goede optie zijn.