Complete gids voor web2py: het Python webframework in detail uitgelegd

Laatste update: 28 juli 2025
  • web2py integreert alles wat u nodig hebt om veilige webapplicaties te ontwikkelen, van een online IDE tot authenticatiesystemen en databases.
  • Het framework onderscheidt zich door zijn filosofie van eenvoud en veiligheid: minimale configuratie, maximale bescherming tegen aanvallen en fouten.
  • De leercurve is erg kort, waardoor het geschikt is voor zowel beginners als gevorderde ontwikkelaars.

web2py

La Webprogrammering in Python heeft geleid tot diverse frameworks die het leven van ontwikkelaars eenvoudiger moeten maken. Een daarvan is web2py. Het onderscheidt zich vooral door de focus op flexibiliteit, veiligheid en gebruiksgemak, zonder dat dit ten koste gaat van de kracht. Daarom is het een favoriet geworden bij zowel beginners als ervaren ontwikkelaars.

Als je dieper wilt begrijpen wat web2py is, Hoe het werkt en waarom het de juiste keuze kan zijn voor uw volgende projectIn dit artikel nemen we je mee van de meest basale tot de meest geavanceerde opties, waarbij we alle kenmerken, voordelen, onderdelen en werkingsfilosofie analyseren.

Wat is web2py?

web2py is een open-source webframework ontwikkeld in Python die de ontwikkeling van veilige, schaalbare en zeer draagbare webapplicaties mogelijk maakt. Het kenmerkt zich door een volledige integratie, wat betekent dat het alles bevat wat nodig is om applicaties te ontwikkelen, testen en implementeren zonder afhankelijk te zijn van externe componenten. Het hoofddoel is om webontwikkeling eenvoudig, productief en veilig te maken.waardoor het grootste deel van de configuratie- en beheerlast die in andere omgevingen vaak voorkomt, wordt geëlimineerd.

Het framework is geïnspireerd door geweldige referenties zoals Ruby on Rails en Djangoen omarmt het beste van twee werelden: het geeft de voorkeur aan conventies boven configuratie, implementeert het Model-View-Controller (MVC)-patroon en biedt uitgebreide hulpmiddelen voor programmeren vanuit de browser.

Technische kenmerken en filosofie van web2py

web2py volgt zeer duidelijke principes die het gebruik ervan definiëren:

  • Herhaal jezelf niet (DROOG): Het doel is om coderedundantie te minimaliseren door repetitieve taken te automatiseren en een groot deel van de benodigde code te genereren, met name in databases en formulieren.
  • Er moet één manier zijn – en slechts één – om dingen te doen: Dit bevordert de duidelijkheid en vergemakkelijkt het onderhoud van de code. Bovendien vermindert het fouten.
  • Expliciet voor impliciet: Hoewel web2py veel automatiseert, probeert de logica van het framework altijd de acties van de ontwikkelaar onder controle te houden en duidelijk weer te geven wat er gebeurt.

Het raamwerk is ook gebouwd rond beveiliging: Valideert automatisch gebruikersinvoer, ontsnapt aan uitvoer om XSS-aanvallen te voorkomen en streeft ernaar veelvoorkomende kwetsbaarheden te voorkomen zonder de programmeur te belasten met technische details.

Kerncomponenten van web2py

web2py

Alles in web2py is zo ontworpen dat u vanuit één omgeving kunt werken en met minimale (of geen) initiële configuratie.Dit zijn de geïntegreerde componenten die het onderscheiden:

  • Geïntegreerde webserver: Direct klaar voor gebruik, ideaal voor ontwikkeling en testen.
  • Webgebaseerde beheerinterface (IDE): Hiermee kunt u projecten, databases, bestanden en bugs rechtstreeks vanuit uw browser maken, bewerken en beheren.
  • Bug-ticketsysteem: Wanneer er een fout optreedt, wordt er een ticket aangemaakt waarmee het probleem kan worden opgelost zonder dat de eindgebruiker details hoeft te onthullen.
  • Database-abstractielaag (DAL): Genereert automatisch SQL voor verschillende databases, waardoor u binnen enkele seconden van engine kunt wisselen (onder andere SQLite, MySQL, PostgreSQL, Oracle en SQL Server).
  • Puur op Python gebaseerde sjabloontaal: De weergaven maken gebruik van Python-syntaxis, waardoor de leercurve wordt verkort en er veel flexibiliteit ontstaat.
  • Hulpmiddelen voor authenticatie en gebruikersbeheer: Vanaf het allereerste begin opgenomen, je hoeft alleen maar te activeren wat je nodig hebt.
  • API's voor het verwerken van moderne webprotocollen: REST, JSON, XML-RPC, RSS en meer worden standaard ondersteund.
  Bootstrap 5: Definitie en configuratie en voorbeeld

Installatie en eerste stappen met web2py

Het installeren van web2py is heel eenvoudig en kan op Windows, Mac en Linux worden gedaan. Het vereist in de meeste gevallen geen complexe configuratie of de installatie van extra afhankelijkheden. Het wordt gedistribueerd in zowel broncodeformaat als binaire pakketten, inclusief de Python-interpreter en SQLite, zodat je direct na het uitpakken van het gedownloade bestand kunt beginnen met programmeren.

  • Windows: Download het web2py_win.zip-pakket, pak het uit en voer het bestand uit web2py.exe.
  • Linux/Mac: Download de broncode, pak het uit en voer het uit python web2py.py.

Bij het opstarten vraagt web2py u om een beheerderswachtwoord en wordt de browser geopend met de beheerinterface. Vanuit hier kunt u applicaties maken of klonen en toegang krijgen tot documentatie en voorbeelden.

hoofd softwareontwikkeling
Gerelateerd artikel:
Wat doet een softwareontwikkelingsmanager?

Model-View-Controller in web2py

Het MVC-patroon vormt de kern van web2py. Elke aanvraag bestaat uit:

  • modellen: Beheer en definitie van de database, tabellen en datalogica.
  • Controllers: Bedrijfslogica en toepassingsstroom; elke controllerfunctie is een toegangspunt (actie) dat toegankelijk is via URL.
  • Keer bekeken: Uitgebreide HTML-sjablonen met Python voor het weergeven en opmaken van gegevens.

URL-routering in web2py is heel eenvoudig: elke URL volgt de structuur /aplicacion/controlador/funcion/, hoewel dit eenvoudig aan te passen is.

Databasebeheer en -modellering

Een van de grote krachten van web2py is de Data Abstraction Layer (DAL). Met DAL kunt u tabellen en velden rechtstreeks in Python definiëren, zonder dat u handmatig SQL hoeft te schrijven. Het framework zorgt automatisch voor het aanmaken en wijzigen van tabellen, en migreert zelfs gegevens als u de structuur wijzigt.

Voorbeeld van een basismodel:

db = DAL('sqlite://storage.db') db.define_table('post', Field('titel', 'string', vereist=IS_NOT_EMPTY()), Field('inhoud', 'tekst', vereist=IS_NOT_EMPTY()), Field('afbeelding', 'upload') )

Met de DAL kunt u verbinding maken met meerdere typen databases: U hoeft alleen de verbindingsreeks te wijzigen. Het ondersteunt ook relaties, validaties, automatische migraties en gedistribueerde transacties.

Levenscyclus van softwareontwikkeling - 3
Gerelateerd artikel:
Levenscyclus van softwareontwikkeling: fasen, modellen en praktische sleutels

Formulieren en validaties maken

web2py onderscheidt zich door de mogelijkheid om automatisch formulieren te genereren uit modellen en validaties uit te voeren zonder dat de programmeur hier enige moeite voor hoeft te doen. Met de SQLFORM-wizard kunt u met slechts enkele regels code een volledig, geldig en veilig formulier maken:

form = SQLFORM(db.post) if form.process().accepted: response.flash = 'Bericht succesvol aangemaakt'

Foutmeldingen, validaties en bestandsopslag worden automatisch en veilig afgehandeld. U kunt de validators voor elk veld ook naar wens aanpassen.

  Alles over arrays in programmeren: typen, toepassingen en voorbeelden

Authenticatie, autorisatie en toegangscontrole

web2py wordt geleverd met een volledig authenticatie- (Auth) en op rollen gebaseerd toegangscontrolesysteem (RBAC). Hiermee kunt u gebruikers registreren, wachtwoorden beheren, machtigingen en groepen configureren en zelfs externe systemen zoals OAuth of OpenID integreren. Instantieer en configureer Auth eenvoudig in het model om formulieren voor registratie, inloggen en sessiebeheer direct te kunnen gebruiken:

van gluon.tools import Auth auth = Auth(db) auth.define_tables(gebruikersnaam=True)

Vervolgens kunt u functies eenvoudig beschermen door een decorator toe te passen:

@auth.requires_login() def new_post(): ...

Dit systeem is bovendien zeer aanpasbaar, zodat u e-mailverificatie, CAPTCHA's en aangepaste toestemmingsbeleidsregels kunt toevoegen.

Weergaven en sjablonen in Python

Een van de sterke punten van web2py is het standpunt: HTML-code kan eenvoudig worden gecombineerd met pure Python, door gebruik te maken van dubbele accolades. {{}} om variabelen, lussen of voorwaarden in te sluiten. Het maakt ook overerving tussen sjablonen mogelijk en vergemakkelijkt het hergebruik van code tussen pagina's.

Voorbeeld van een eenvoudig aanzicht:

{{extend 'base.html'}}

{{=post.titulo}}

{{=post.contenido}}

Hierdoor kunt u het ontwerp en de structuur van de website eenvoudig aanpassen naarmate uw project groeit.

Lieve AI-tool
Gerelateerd artikel:
Lovable: wat het is, hoe het werkt en waarom het een revolutie teweegbrengt in AI-aangedreven webontwikkeling

Applicatiebeheer- en administratiesysteem

web2py bevat twee belangrijke beheerapplicaties:

  • beheerder: Hiermee kunt u al uw web2py-applicaties maken, bewerken, installeren, verpakken en beheren via een handige en gebruiksvriendelijke interface.
  • appbeheerder: Specifiek voor projecten en databasebeheer: u kunt records invoegen, bewerken en verwijderen en de status van tabellen opvragen zonder ook maar één regel SQL te hoeven schrijven.

Deze ‘batterijen inbegrepen’-aanpak is ideaal voor zowel leren als professionele ontwikkeling.

Plugins, componenten en uitbreidbaarheid

Het web2py-ecosysteem omvat plug-ins en voorbeeldtoepassingen die apparaten worden genoemd die je kunt installeren en aanpassen: van wiki's, blogs en forumsystemen tot lichtgewicht ERP's en samenwerkingsapps. Veel plugins stellen je in staat om functies uit te breiden, zoals CSS-ontwerp, afbeeldingen, chats of integratie met andere platforms.

Bovendien ondersteunt web2py de creatie van herbruikbare AJAX-componenten en REST API's, waardoor u eenvoudig moderne, modulaire applicaties kunt bouwen.

wat is ontwikkelingssoftware-1
Gerelateerd artikel:
Wat is ontwikkelingssoftware: alles wat u moet weten

Internationalisering en meertalige ondersteuning

web2py ondersteunt internationalisatie en lokalisatie direct uit de doos: Alle tekst in uw weergaven of controllers kan worden gemarkeerd voor vertaling met het T-object. Met de beheerinterface kunt u vertalingen visueel toevoegen en beheren, waarbij strings automatisch worden gedetecteerd.

Er is een krachtig en flexibel meervoudssysteem inbegrepen, dat ondersteuning biedt voor verschillende talen met complexe grammaticale regels.

Achtergrondtaakbeheer (cron)

web2py bevat een cron-jobsysteem waarmee u periodiek scripts of onderhoudsacties kunt uitvoeren, hetzij na het serveren van een pagina (soft cron), in een aparte thread (hard cron) of via de systeemcronab.

  DevOps-methodologie: softwarelevering optimaliseren

Cache, sessies en prestatie-optimalisatie

Het raamwerk omvat cachingsystemen op het RAM-, schijf- en memcached-niveau., waardoor u uw applicaties eenvoudig kunt schalen. Sessiebeheer is veilig en flexibelen zelfs toestaan dat gevoelige gegevens op de server worden opgeslagen in plaats van in client-side cookies.

Veiligheid

Veiligheid is een essentiële pijler van web2pyStandaardbeslissingen binnen het hele framework zijn gericht op beveiliging: invoer wordt automatisch gevalideerd en gefilterd, rechten worden correct beheerd en veelvoorkomende aanvallen zoals XSS, CSRF en SQL-injecties worden voorkomen. Zelfs de opslag en toegang tot geüploade bestanden is ontworpen om risico's te vermijden.

Constante updates en achterwaartse compatibiliteit

Web2py wordt voortdurend bijgewerkt om incompatibiliteiten te minimaliseren: De ontwikkelaars hebben zich ertoe verbonden de achterwaartse compatibiliteit niet te verbrekenAls uw app in een eerdere versie werkte, blijft deze ook in latere versies werken. Dit zorgt voor stabiliteit en betrouwbaarheid op lange termijn.

Praktische voorbeelden

Het ontwikkelen van een "Hello World" in web2py is net zo eenvoudig als het aanmaken van een functie in de controller en, indien gewenst, een weergave:

def index(): return 'Hallo wereld!'

Of gebruik weergaven en geef variabelen door:

def index(): return dict(bericht='Hallo wereld!')

In het bijbehorende overzicht:

{{=mensaje}}

Om een database en een formulier toe te voegen:

# models/db.py db = DAL('sqlite://storage.db') db.define_table('entry', Field('title'), Field('content', 'text')) # controllers/default.py def new(): form = SQLFORM(db.entry) if form.process().accepted: response.flash = 'Succesvol opgeslagen' return dict(form=form)
Levenscyclus van softwareontwikkeling
Gerelateerd artikel:
Levenscyclus van softwareontwikkeling: strategieën om elke fase te optimaliseren

Voordelen en redenen om voor web2py te kiezen

  • Geen complexe installatie of externe afhankelijkheden: ideaal voor het geven van onderwijs of het starten van pilotprojecten.
  • Zeer lage leercurve: vooral praktisch voor mensen die nog nieuw zijn in webontwikkeling met Python.
  • Krachtig en veilig voor professionele omgevingenGrote bedrijven en universiteiten hebben ervoor gekozen voor kritische toepassingen.
  • Uitbreidbaar en modern: Ondersteunt alles van traditionele applicaties tot REST API's, AJAX en moderne websites met mobielgericht beheer.

Gemeenschap en documentatie

web2py heeft een zeer actieve internationale gemeenschap, vooral sterk in het Spaans en Portugees, met constant bijgewerkte forums, mailinglijsten en bronnen. Officiële documentatie, boeken en tutorials behandelen alles, van de meest basale tot de meest geavanceerde opties.

web2py is de perfecte tool voor iedereen die productiviteit, veiligheid en flexibiliteit in webontwikkeling wil combineren met Python. Of je nu net begint of al ervaring hebt, je zult ontdekken dat het ontwikkelen van webapplicaties nog nooit zo eenvoudig en krachtig was.