Python is een veelzijdige programmeertaal die voor veel doeleinden gebruikt kan worden. Denk bijvoorbeeld aan data science of machine learning. Maar Python is ook één van de meest gebruikte talen voor back-end development. In deze blog leggen we uit wat hiermee bedoeld wordt en hoe Python hiervoor het beste gebruikt kan worden.
Wat is back-end development?
De term 'back-end' wordt vaak gebruikt in de context van webapplicaties of smartphone apps (iOS en Android). Deze applicaties bestaan doorgaans uit 3 lagen: een database, back-end en front-end.
- De database: data wordt opgeslagen in een database, bijvoorbeeld een SQL-database.
- Een back-end: een back-end verkrijgt data uit de database en past hier business logica op toe. Een voorbeeld: een dashboard voor aandelen zou in de backend de waarde van alle aandelen zoals opgeslagen in de database bij elkaar op kunnen tellen. In principe kan elke server-side programmeertaal hiervoor gebruikt worden (Python, Java, C#, Rust, Golang).
- Een front-end: dit is de applicatie die de gebruiker te zien krijgt. Hier wordt de data getoond en kan de gebruiker acties uitvoeren die vervolgens weer door de backend verwerkt worden. Een front-end van een webapplicatie bestaat uit altijd uit Javascript en HTML, dat zijn de talen waarmee browser overweg kunnen. Deze Javascript en HTML kan echter ook gegenereerd worden in de back-end.
Een ontwikkelaar die met al deze lagen overweg kan wordt ook wel een full-stack developer (ontwikkelaar) genoemd.
Een back-end is in deze context vaak een REST [API](https://datasciencepartners.nl/wat-is-een-api-hoe-werkt-een-api/ "API")
: dit betekent dat een andere applicatie middels HTTP-requests kunt benaderen. Als je in de browser navigeert naar https://datasciencepartners.nl doe je een zogenaamd HTTP GET
request. De backend zorgt er dan voor dat als je naar deze url gaat je de juiste informatie getoond krijgt. Naast GET
zijn er nog vier andere veelgebruikte methodes: POST
(het creëren van data), PUT
(data vervangen), PATCH
(data updaten) en DELETE
(data verwijderen).
Een stap die bijna altijd terugkomt is het gebruiken van een database. Dit betekent allereerst dat je technisch met de database moet kunnen verbinden. Daarnaast moet echter ook de data worden vertaald naar een Python-object om zo de principes van object-geörienteerd programmeren toe te kunnen passen. Hiervoor gebruik je een zogenaamde ORM (object relational mapper). Hiermee zet je elke rij uit een databasetabel om in een Python object. Een tabel gebruiker
met kolommen email
, voornaam
en achternaam
wordt zo een object met class Gebruiker()
waarvan je de attributen kunt verkrijgen middels gebruiker.email
, gebruiker.voornaam
en gebruiker.achternaam
. Bij Python wordt hiervoor bijna altijd de ORM van SQLAlchemy gebruikt.
Frameworks voor back-end development met Python
De drie populairste frameworks zijn Flask, FastAPI en Django.
1. Flask
Flask is een licht micro framework waarmee je een REST API kunt ontwikkelen. De kernfunctionaliteit van Flask is dat een ontwikkelaar kan definiëren welke code er uitgevoerd moet worden voor een combinatie van URL en HTTP method (GET
, PUT
, POST
, PATCH
en DELETE
).
Flask heeft geen additionele functionaliteit ingebouwd, zodoende de term micro framework. Functionaliteit kan toegevoegd worden door additionele packages te installeren, bijvorbeeld flask-sqlalchemy
waarmee verbonden kan worden met SQL databases middels SQLAlchemy.
from flask import Flask
app = Flask(__name__)
@app.route('/test')
def test():
return 'Dit is een test.'
Als je deze applicatie zou hosten op https://test-applicatie.nl
, zou de URL https://test-applicatie.nl/test
de tekst 'Dit is een test' tonen.
2. FastAPI
FastAPI is vergelijkbaar met Flask en is momenteel één van de populairste Python-frameworks voor backend-development. Ten opzichte van Flask heeft FastAPI een aantal voordelen:
- FastAPI genereert automatisch interactieve documentatie op basis van de OpenAPI-standaard, waardoor het makkelijker wordt voor andere applicaties om dit te gebruiken.
- Voor het genereren van deze documentatie wordt gebruikt gemaakt van schema's (een beschrijving van de JSON-objecten die een REST API gebruikt) die in applicatie gedefinieerd worden.
- Validatie van schema's: indien de input of output niet voldoet aan het JSON-schema, zal FastAPI een foutmelding geven. Dit zorgt ervoor dat je altijd met gevalideerde data werkt.
- Ondersteuning voor dependencies: je kan zelf makkelijk extra functionaliteit toevoegen, bijvoorbeeld met een database verbinden, zonder dat daar een extra package voor nodig is.
FastAPI kan worden gezien als een moderne variant van Flask.
3. Django
Django is uitgebreid framework waarin je zowel een backend als frontend kunt maken. Daarnaast zijn er veel modules ingebouwd die je bij andere frameworks zelf moet implementeren of bedenken, zoals communicatie met de database en authenticatie van gebruikers. Het framework bestaat al vele jaren en kent uitgebreide en goede documentatie. Hiermee is Django een zeer betrouwbare keuze voor back-end development.
Django is een opinionated framework, wat betekent dat het framework uitgaat van conventies en best practices. Dit heeft zowel nadelen als voordelen. Het voordeel is dat het zelfs voor een beginner relatief eenvoudig is om een goede, gestructureerde wijze een complete applicatie op te zetten. Soms is dit echter ook een nadeel: voor simpele applicaties is Django soms te overweldigend, terwijl er ook frameworks zijn die minder omvattend zijn Django maar wel beter op specifieke gebieden, zoals specifieke front-end frameworks.
Voor een bedrijfsapplicatie die vooral stabiel moet zijn is Django een uitstekende keuze. Voor een interactief dashboard wordt vaak gekozen voor een aparte backend in Flask of FastAPI en een front-end in een Javascript-framework als Vue.js of React.
Samenvatting
Python is bij uitstek geschikt voor back-end development. Wil je alleen een REST back-end maken in Python, kies dan voor FastAPI. Met FastAPI wordt automatisch documentatie gegenereerd en kan je eenvoudig input en output valideren middels schema's. Als je een complete applicatie wil maken is Django een goede keuze, dit framework is veelzijdig en zeer robuust omdat het al een aantal jaar oud is.
Wil je nog veel meer leren over Python i.c.m. APIs? Bekijk dan onze Python cursus voor data science i.c.m. de APIs add-on of download onderstaande opleidingsbrochure. In onze Python cursus wisselen theorie en praktijkoefening elkaar steeds af. Nadat je deze training hebt gevolgd kun je zelfstandig met Python aan de slag. Je kunt ook altijd even contact opnemen via info@datasciencepartners.nl of 020 - 24 43 146 als je een vraag hebt.
Download één van onze opleidingsbrochures voor meer informatie
Terry is afgestudeerd aan de TU Delft als ingenieur en heeft zich in zijn carrière beziggehouden met het optimaal benutten van data om bedrijfsprestaties te verbeteren. Dit heeft hij gedaan in verschillende rollen, als software ontwikkelaar en als data scientist.