We plaatsen een cookie voor Google Analytics om onze website te verbeteren

Met een cookie kun je advertenties personaliseren. Wij hanteren echter de strikte regels van de Autoriteit Persoonsgegevens. Surfgedrag houden we niet bij en we achtervolgen je ook niet met reclame.

Starten met Python

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:

  1. Login op DirectAdmin.
  2. Klik in het menu op ‘Extra functies’ en ga naar ‘Python Selector’.
  3. 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:

  1. Klik op ‘Create application’ om een nieuwe applicatie te maken.
  2. 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: 

  1. In de hoofdmap van je hostingpakket is de map ‘pythondemo’ aangemaakt.  
  2. 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.  

Python selector

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:

  1. Blader naar het volgende pad:  home/deb12345/pythondemo/demo 
  2. Dubbelklik vervolgens op settings.py om deze te openen.  
  3. 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. 

Deel dit blog
Jochem Gervink
Jochem Gervink

Jochem heeft een passie voor klantgerichtheid. Bij Antagonist zet hij op Support zijn kennis en ervaring in om jou zo goed mogelijk te helpen

Artikelen: 7

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Sterren Webhosting: 5 sterren uit 5.830 reviews

60.000+ webhostingpakketten actief
Bij de beste webhosters in MT1000 en Emerce 100