Basisbeginselen van Flask

Voltooid

Flask is een opensource-micro-webframework. De term 'micro-framework' betekent dat het framework de vereiste taken van een webframework uitvoert, maar dat het geen geavanceerde functies bevat of moet voldoen aan andere specifieke vereisten voor een juiste werking van uw toepassing. Met deze benadering kan Flask uiterst flexibel zijn en perfect zijn voor gebruik als front-end voor bestaande back-ends of API's, zoals Azure AI-services.

Wanneer u een webtoepassing maakt met een framework, zijn er enkele basisconcepten die u moet begrijpen: routering, methoden en sjablonen. We gaan iets dieper in op deze concepten voordat we onze code gaan schrijven.

Reageren op gebruikersaanvragen met routes

Wanneer gebruikers een webtoepassing gebruiken, geven ze aan wat ze willen doen, of welke informatie zij zoeken door te bladeren naar verschillende URL's (Uniform Resource Locators). Ze kunnen rechtstreeks een adres invoeren (bijvoorbeeld https://adventure-works.com) of een koppeling selecteren, of een knop met de juiste URL. Op een e-commerce-site kunt u URL's hebben die er als volgt uitzien:

  • https://adventure-works.com/ voor de hoofdpagina
  • https://adventure-works.com/products/widget voor detailinformatie over een widget
  • https://adventure-works.com/cart/buy voor het afrekenen van een aankoop

Als ontwikkelaar hoeft u zich geen zorgen te maken over het eerste deel van de URL of het domein (adventure-works.com in ons voorbeeld). Onze toepassing treedt in werking op basis van het deel na de domeinnaam, wat begint met /. Het gedeelte na de domeinnaam wordt een route genoemd.

Een route is een pad naar een actie. Net als bij tikken op een knop in een mobiele app, geeft een route de actie aan die de gebruiker wil uitvoeren. We registreren verschillende routes in onze webtoepassing om te reageren op de verschillende aanvragen die onze toepassing ondersteunt.

In onze toepassing geven we aan hoe we willen reageren op een bepaalde routeaanvraag door een functie op te geven. Een route is een toewijzing aan een functie. Wanneer we denken aan het schrijven van code in het algemeen, is dit een relatief natuurlijk concept. Wanneer we een bepaalde actie willen uitvoeren, roepen we een functie aan. Onze gebruikers doen precies hetzelfde! Ze doen dit alleen net iets anders, namelijk via een route.

Methoden of werkwoorden

Routes kunnen op verschillende manieren worden geopend, via wat 'methoden' of 'werkwoorden' worden genoemd (de twee termen betekenen hetzelfde en kunnen door elkaar worden gebruikt). Hoe de route wordt geopend, biedt aanvullende context over de status van de gebruikersaanvraag en welke actie de gebruiker wil uitvoeren.

Er zijn veel methoden beschikbaar bij het maken van een webtoepassing, maar de twee meestvoorkomende (en de enige twee waar we ons op zullen richten) zijn GET en POST. GET geeft meestal aan dat de gebruiker informatie aanvraagt, terwijl POST aangeeft dat de gebruiker iets wil verzenden en een antwoord wil ontvangen.

Notitie

Ongeacht welk werkwoord wordt gebruikt, er kunnen altijd gegevens worden geretourneerd aan de gebruiker.

Een veelgebruikte toepassingsstroom waarbij GET en POST worden gebruikt, is het gebruik van een formulier. Stel dat we een toepassing maken waarbij de gebruiker zich wil registreren voor een adressenlijst:

  1. De gebruiker opent het aanmeldingsformulier via GET
  2. De gebruiker vult het formulier in en selecteert de verzendknop
  3. De gegevens van het formulier worden teruggestuurd naar de server met behulp van POST
  4. Er wordt een bericht geretourneerd aan de gebruiker dat de gegevens met succes zijn verzonden

Zoals u al kunt vermoeden, is het niet de gebruiker die bepaalt welk werkwoord wordt gebruikt, maar de toepassing. Over het algemeen is het zo dat als gebruikers rechtstreeks naar een URL navigeren door deze in te typen of door een koppeling te selecteren, ze toegang krijgen tot de pagina met behulp van GET. Wanneer ze een knop voor een formulier selecteren, verzenden ze de informatie doorgaans via POST.

Notitie

We houden deze conversatie relatief algemeen, omdat een volledige bespreking van methoden buiten het bereik van deze module valt.

Sjablonen

Hypertext Markup Language (HTML) is de taal die wordt gebruikt voor het structureren van de informatie die wordt weergegeven in een browser, terwijl Cascading Style Sheets (CSS) wordt gebruikt voor het beheren van de stijl en lay-out. Bij het maken van een toepassing is de meeste HTML statisch, wat betekent dat deze niet verandert. Om onze pagina's dynamisch te maken, moeten we de gegevens echter programmatisch in een HTML-pagina kunnen plaatsen. Bijna elk webframework ondersteunt deze vereiste via sjablonen.

Met een sjabloon kunt u de basis-HTML (of een sjabloon) schrijven en tijdelijke aanduidingen voor de dynamische gegevens opgeven. De meestvoorkomende syntaxis voor tijdelijke aanduidingen is waarschijnlijk {{ }}. Deze syntaxis wordt gebruikt door Jinja, de sjabloon-engine voor Flask.

<h1>Welcome, {{ name }}</h1>

Het voorgaande voorbeeld bevat de HTML h1 (een koptekst) met de tekst die we willen weergeven. {{ name }} geeft aan dat er een variabele met de naam name direct na Welcome (Welkom) moet worden weergegeven. Met deze syntaxis kunnen we onze HTML-code schrijven met behulp van onze bestaande vaardigheden en zo nodig de dynamische gegevens injecteren.

Test uw kennis

1.

Flask is een framework voor het bouwen van web-apps. In welk van de volgende talen gebeurt dit?