Python is een flexibele open-source programmeertaal. Het wordt gebruikt voor veel verschillende doeleinden, onder andere voor het ontwikkelen van websites.
In dit blog behandel ik het opzetten van een webapplicatie met de Python selector binnen DirectAdmin. Deze applicatie gebruikt Python en het populaire web framework Django. Wil jij ook graag een Python webapplicatie hosten? Lees dan hier welke stappen daarvoor nodig zijn.
Voorbereiding
De Python-selector is bij Antagonist beschikbaar vanaf het Plus-pakket. Kun je de Python-selector in het DirectAdmin-menu niet vinden, controleer dan of je minimaal een Plus-pakket hebt. Heb je de inloggegevens van DirectAdmin bij de hand, en SSH reeds ingesteld op je hostingpakket? Dan ben je klaar om te beginnen.
Let op: Dit blog is puur bedoeld als demonstratie voor het opzetten van een Python applicatie. Zorg ervoor dat je een goed beeld hebt van Python en de beveiliging die je website nodig heeft. Dit blog gaat niet in op veiligheidsmaatregelen, maar is enkel gefocust op de koppeling van de Python selector met jouw Python applicatie.
De Python applicatie aanmaken
Begin met het aanmaken van de Python applicatie. Dit doe je als volgt:
- Login op DirectAdmin.
- Klik in het menu op ‘Extra functies’ en ga naar ‘Python Selector’.
- Klik op ‘Create application’ om met een nieuwe applicatie te beginnen.
Nu is het belangrijk om een map aan te maken om onze Python applicatie te huisvesten. We gebruiken hier de Python Selector in DirectAdmin voor:
- Klik op ‘Create application’ om een nieuwe applicatie te maken.
- Vul de velden ‘Application root’ en ‘Application URL’ in. Ik gebruik de volgende instellingen:
Let op: Met deze instellingen zal de Python applicatie op hoofddomein-niveau worden aangemaakt. In dit blog houd ik de opzet zo concreet mogelijk en daarom ga ik hier niet in op de routing van Python applicaties.
Klik dan op “Create”. De applicatie start nu automatisch. Onder water zijn daardoor twee dingen gebeurd:
- In de hoofdmap van je hostingpakket is de map ‘pythondemo’ aangemaakt.
- In de public_html map van je geselecteerde domein is een .htaccess bestand aangemaakt.
Het .htaccess bestand bevat alle informatie om de koppeling met de map ‘pythondemo’ aan te maken. Door deze koppeling wordt automatisch het passenger_wsgi.py script (aangegeven in Application startup file) aangeroepen om uit te voeren zodra iemand je website bezoekt. Dit passenger_wsgi.py script is het eerste python script dat aangeroepen wordt, oftewel het entry point voor je applicatie.
Django installeren via SSH
Je applicatie is aangemaakt! De volgende stap is het updaten van ‘pip’ (de python package installer) en het installeren van Django. Dit doe je door via SSH te verbinden met de virtuele omgeving.
Klik (in de donkerblauwe balk die verschenen is) op het virtuele omgeving commando om het te kopiëren. In je SSH client plak je het commando en voer je het uit. Je bent dan via SSH ingelogd binnen de ‘pythondemo’ map binnen de hoofdmap op je hostingpakket.
Vanaf hier is het mogelijk om pip-commando’s uit te voeren. We beginnen met het upgraden van pip, om zeker te zijn dat de laatste versie is geïnstalleerd. Vervolgens installeren we Django. Hier gebruiken we de volgende twee commando’s voor:
pip install --upgrade pip
pip install django "mysqlclient<2.0.2"
Nu Python en Django zijn geïnstalleerd, is de volgende stap het aanmaken van een project met behulp van Django. Dit kunnen we via SSH doen. Met het volgende commando maken we een project aan:
django-admin startproject demo .
Om een website te tonen, serveert de webserver pagina’s aan een bezoeker. Momenteel heeft ons project nog geen pagina’s. Dat gaan we nu rechtzetten met het volgende commando:
python manage.py startapp begin
Boilerplate code aanpassen
In onze projectmap (home/deb12345/pythondemo) is nu een nieuwe map gemaakt, genaamd ‘begin’. In deze map bevindt zich momenteel enkel wat standaard code. Deze code gaan we wijzigen om onze eerste pagina in leven te roepen.
Ga binnen DirectAdmin naar ‘Bestandsbeheer’. Blader naar home/deb12345/pythondemo/begin en open views.py. Vervang alle code in views.py met de volgende code:
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hallo wereld, je testpagina werkt!")
De volgende stap is het opzetten van de databaseverbinding:
- Blader naar het volgende pad: home/deb12345/pythondemo/demo
- Dubbelklik vervolgens op settings.py om deze te openen.
- Scroll helemaal naar de laatste regel van het bestand en voeg daar de volgende regels toe. Let er wel op dat je de domeinnaam en deb-nummer wel wijzigt naar jouw eigen domeinnaam en pakket, anders gaat het niet werken.
ALLOWED_HOSTS = ['example.com']
DEBUG = False
STATIC_ROOT = '/home/deb12345/domains/example.com/public_html/static'
4. Sla de wijziging op en sluit dit bestand. Open vervolgens het bestand urls.py, en zorg er voor dat de onderste regels in dit bestand overeenkomen met deze regels:
from django.contrib import admin
from django.urls import path
from begin.views import index
urlpatterns = [
path('', index),
path('admin/', admin.site.urls),
]
Laatste stappen
Om deze wijzigingen te verwerken, gaan we nog terug naar de Python selector.
- Wijzig passenger_wsgi.py naar demo/wsgi.py en herstart de python applicatie vanuit de selector.
- Bezoek nu je website, en je zou jouw nieuwe testpagina moeten zien.
Na al deze stappen hebben we onze Python webapplicatie nu live draaien. Met je eerste pagina begint het pas, en vanaf hier geef ik de teugels over aan jou.
Python heeft veel te bieden! Ben je geïnteresseerd geraakt? Bekijk dan snel de mogelijkheden die Python te bieden heeft.