Grunderna i Flask

Slutförd

Flask är ett mikroramverk med öppen källkod. När skaparna använder termen mikroramverk så innebär det att ramverket utför de nödvändiga uppgifterna för ett webbramverk, men att det inte innehåller avancerade funktioner eller andra specifika krav som programmet måste följa för att fungera korrekt. Med den här metoden kan Flask vara extremt flexibel och perfekt för användning som klientdel till befintliga serverdelar eller API:er – till exempel Azure AI-tjänster!

När du skapar ett webbprogram med ett ramverk finns det några grundläggande koncept som vi behöver för att förstå routning, metoder och mallanvändning. Låt oss utforska dessa koncept innan vi skriver vår kod.

Svara på användarbegäranden med vägar

När en användare använder ett webbprogram, anger de vad de vill göra eller den information som de letar efter genom att bläddra till olika Uniform Resource Locators (eller URL:er). De kanske skriver ut en adress direkt (säg https://adventure-works.com) eller väljer en länk eller en knapp som innehåller den lämpliga URL:en. På en e-handelswebbplats kan du ha URL:er som ser ut så här:

  • https://adventure-works.com/ för huvudsidan
  • https://adventure-works.com/products/widget för information om en widget
  • https://adventure-works.com/cart/buy för att slutföra ett köp

Som utvecklare behöver vi egentligen inte bekymra oss över den första delen av URL:en eller domänen (adventure-works.com i vårt exempel). Vårt program agerar baserat på det som kommer efter domännamnet, från /. Delen efter domännamnet är vad som är känt som en väg.

En väg är en sökväg till en åtgärd. På samma sätt som när du trycker på en knapp i en mobilapp anger en väg den åtgärd som användaren vill utföra. Vi registrerar olika vägar i webbprogrammet för att svara på de olika begäranden som programmet stöder.

I vårt program visar vi hur vi vill svara på en viss vägbegäran genom att tillhandahålla en funktion. En väg är en karta till en funktion. När vi tänker oss att skriva kod i allmänhet är det här konceptet relativt naturligt. När vi vill utföra en viss åtgärd anropar vi en funktion. Användarna kommer att göra exakt samma sak! De gör det bara på ett lite annorlunda sätt, genom att öppna en väg.

Metoder eller verb

Vägar kan nås på många sätt, via vad som kallas metoder eller verb (de två termerna betyder samma sak och kan användas utbytbart). Hur vägen nås ger ytterligare kontext om status för användarbegäran och vilken åtgärd användaren vill utföra.

Det finns många tillgängliga metoder när du skapar ett webbprogram, men de två vanligaste (och de enda två vi fokuserar på) är GET och POST. GET indikerar vanligtvis att användaren begär information, medan POST anger att användaren behöver skicka oss något och få ett svar.

Kommentar

Oavsett vilket verb som används kan information alltid returneras till användaren.

Ett vanligt programflöde som använder GET och POST kretsar runt att använda ett formulär. Låt säga att vi skapar ett program där användaren vill registrera sig för en e-postlista:

  1. Användaren öppnar registreringsformuläret via GET
  2. Användaren fyller i formuläret och väljer skicka in-knappen
  3. Informationen från formuläret skickas tillbaka till servern med hjälp av POST
  4. Ett meddelande om att det lyckats returneras till användaren

Som du kanske misstänker anger användaren inte direkt det verb som de vill använda, det styrs av programmet. Om användaren går till en URL direkt, genom att skriva in den i eller genom att välja en länk, kommer de generellt sätt åt sidan genom att använda GET. När de väljer en knapp för ett formulär skickar de vanligtvis informationen via POST.

Kommentar

Vi håller den här konversationen på relativt hög nivå, eftersom en fullständig diskussion av metoderna ligger utanför den här modulens omfattning.

Mallar

Hypertext Markup Language eller HTML är det språk som används för att strukturera den information som visas i en webbläsare, medan Sammanhängande formatmallar eller CSS används för att hantera format och layout. När du skapar ett program blir merparten av HTML-koden statisk, vilket innebär att den inte ändras. Men för att göra våra sidor dynamiska måste vi kunna placera information programmässigt på en HTML-sida. Nästan alla webbramverk stöder detta krav med hjälp av mallar.

Med en mall kan du skriva kärn-HTML (eller en mall) och ange platshållare för dynamisk information. Den vanligaste syntaxen för platshållare är sannolikt {{ }}. Jinja, mallanvändningsmotorn för Flask, använder den här syntaxen.

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

I föregående exempel har vi HTML-koden h1 (ett sidhuvud) med den text vi vill visa. {{ name }} anger att vi vill visa en variabel med namnet name direkt efter Välkommen. Genom att använda den här syntaxen kan vi skriva vår HTML med våra befintliga kunskaper och injicera den dynamiska informationen efter behov.

Testa dina kunskaper

1.

Flask är ett ramverk för att skapa webbappar på vilka av följande språk?