Python-kolbe forklart på 5 minutter eller mindre

Python Flask er et mikrorammeverk for å bygge nettapplikasjoner i Python.

Det er et veldig fleksibelt og tilpassbart rammeverk som gjør læring enkelt. Som et resultat er det et populært valg når du bygger webservere. Denne artikkelen introduserer Python Flask: hva det er, hvordan det sammenlignes med andre rammeverk, og hvordan du lager en grunnleggende applikasjon i Python.

Hva er Flask?

Kolbe er et rammeverk for å bygge webservere i Python. I motsetning til andre rammeverk, tvinger det ikke utvikleren til å tilpasse seg en bestemt katalogstruktur.

I tillegg er det meningsløst, slik at du kan bruke hvilke verktøy du foretrekker for å utføre handlinger som å koble til en database og validere skjemainndata.

Flask brukes som nevnt til å bygge webservere. En webserver er programvare som svarer på HTTP-forespørsler med riktige data og filer.

Flask vs. andre rammer

Denne delen vil kort sammenligne Flask med to andre populære rammeverk – Django og Fast API. Vi vil dekke fordelene og begrensningene ved å bruke Flask fremfor andre rammeverk.

Flask vs. Django

Flask er en lett mikroramme. Det gir utviklere enkelhet og fleksibilitet, slik at du kan bygge mens du går. Dette betyr imidlertid at du må gjøre mye arbeid selv.

På den annen side er Django et «batterier-inkludert» rammeverk som kommer med mange forhåndskonfigurerte verktøy. Dette gjør at du kan bygge og sende raskere. Django er imidlertid ikke særlig fleksibel og har en brattere læringskurve.

Som et resultat brukes Flask til små og mellomstore prosjekter, mens Django brukes til større og mer komplekse prosjekter.

Les også: Forskjeller mellom Flask og Django

  Er Breezy HR One-Stop-løsningen for bedre ansettelse?

Flask vs. FastAPI

FastAPI er et relativt nytt rammeverk for å bygge APIer i Python. Den er rask og enkel å bruke. Den har innebygd overvåking som en funksjon. Det er imidlertid et nytt rammeverk med et relativt lite økosystem og samfunn. I tillegg er bruken begrenset til APIer.

Derimot er Flask mer allsidig ettersom den kan brukes til både APIer og gjengivelse av statiske filer. Den er lett og relativt enkel. Det er imidlertid tregere enn FastAPI.

Flask er best egnet for nettapplikasjoner der du må gjengi HTML, mens FastAPI skal brukes til å bygge APIer.

Les også: FastAPI vs. Flask: Hvilken av de to passer for deg?

Hvordan lage en applikasjon i Flask

I denne delen skal vi bygge en enkel Flask-app for å vise litt HTML og gi data gjennom en API. Poenget med dette er ikke å gi en omfattende opplæring til Flask. Målet er heller å vise deg kort hvordan å bygge en Flask-app vil se ut.

Forutsetninger

For å følge denne opplæringen må du forstå Python 3. I tillegg vil kjennskap til HTTP være nyttig, men ikke nødvendig.

For å lage en applikasjon i Flask, må du installere Python først. Hvis du trenger en veiledning for hvordan du gjør det, her er en video som veileder deg:

Lag et virtuelt miljø

Først oppretter du en prosjektmappe for applikasjonen. Jeg kjører kommandoene mine i Bash Terminal; derfor oppretter jeg en mappe ved å bruke følgende kommando:

mkdir flask-tut

Deretter navigerer du inn i mappen ved å bruke kommandoen:

cd flask-tut

Etter å ha navigert inn i mappen, lag et virtuelt miljø ved å bruke denne kommandoen. Dette sikrer at avhengighetene vi skal installere ikke kommer i konflikt med avhengighetene fra andre prosjekter.

python3 -m venv venv

Dette skal opprette en venv-mappe, som du kan se med kommandoen:

ls

Aktiver virtuelt miljø

Det er enkelt å aktivere et virtuelt miljø. Bruk Bash-terminalen, skriv inn kommandoen:

source venv/bin/activate

Din terminalmelding skal endres fra denne $ til denne (venv) $.

  8 beste brevpapirprodusenter for merkevarebygging av virksomheten din

For mer informasjon, her er en artikkel om virtuelle miljøer i Python.

Installer Flask

Med et virtuelt miljø kan vi fortsette å installere Flask. Til det bruker vi pip:

pip install Flask

Det burde laste ned noen filer og installere avhengigheter.

Viser litt HTML

Deretter kan vi begynne å jobbe med main.py-filen. Denne filen vil være applikasjonens inngangspunkt.

touch main.py

Etter å ha opprettet main.py-filen, åpner du den med din foretrukne editor og legger til følgende kode:

from flask import Flask

app = Flask(__name__)

@app.route("/")
def index():
    return '<h1>Hello from Flask!</h1>'

I kodebiten ovenfor startet vi med å importere Flask-klassen. Deretter instansierte vi Flask-klassen, og sendte inn variabelen __name__. Dette er en innebygd variabel som lagrer navnet på gjeldende modul. Flask trenger dette for å vite hvor de skal finne filer. Vi lagret forekomsten av Flask i appvariabelen.

Deretter opprettet vi en funksjon kalt indeks. Denne funksjonen returnerer HTML-en vi ønsker å vise til brukeren. Før funksjonsdefinisjonen brukte vi @app.route-dekoratoren. Denne dekoratøren konverterer en vanlig funksjon til en kolbevisningsfunksjon. Dette betyr at funksjonens returverdi vil bli konvertert til et HTML-svar.

For å kjøre applikasjonen bruker vi kommandoen:

flask --app main run

–app-flagget spesifiserer hvor applikasjonen er. I dette tilfellet, i main.py. Serveren skal begynne å kjøre.

Og hvis du åpner nettleseren på http://localhost:5000 eller http://127.0.0.1:5000, bør du se en h1:

Å skrive all HTML i Python-koden vil generelt være dårlig. Ideelt sett ønsker vi å skille Python fra HTML. Den neste delen vil se på hvordan du serverer frittstående HTML-filer.

Viser en HTML-fil

I denne delen vil vi skrive koden for å tjene en index.html-fil for nettstedet vårt. La oss først lage filen index.html. Vi vil lage denne filen i malemappen fordi det er der Flask ser etter HTML-malen vår

touch template/index.html

Deretter åpner du filen med ditt foretrukne redigeringsprogram og legger til følgende kode:

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Flask Website</title>
  </head>
  <body>
	<h1>Hello from Flask!</h1>
  </body>
</html>

Deretter åpner du main.py-filen vi opprettet tidligere. Legg deretter til følgende import øverst, like etter Flask-importen:

from flask import render_template

render_template-funksjonen vi nettopp importerte gjør oss i stand til å tjene HTML-maler. For å gjengi en HTML-fil, endrer vi indeksfunksjonen til å se slik ut:

@app.route("/")
def index():
    return render_template('index.html')

Stopp serveren (Ctrl + C) og start den på nytt med følgende kommando:

flask --app main run

Last nettleservinduet på nytt, og du bør se følgende.

  Hvilke kamerainnstillinger bør jeg bruke for landskapsbilder?

I dette eksemplet viser vi en statisk HTML-side. Med Flask kan du også vise maler ved å lage HTML-maler og levere data. Disse malene følger Jinja-syntaksen. Vi vil ikke dekke dette her for korthets skyld, men jeg vil koble til noen gode ressurser for å lære Flask senere.

Opprette en API-rute

Å vise HTML-innhold er en funksjon av webapplikasjoner. Den andre er å betjene data gjennom en API-rute. I Flask er det også enkelt å sette opp API-ruter. Legg til denne koden i main.py-filen for å opprette en API-rute på «/data».

@app.route('/data')
def data():
    return { "status": "OK", "msg": "Hello from Flask API" }

Hvis en funksjon returnerer en diktat eller en liste, konverteres verdien til JSON og sendes som et svar. Hvis du starter serveren på nytt og åpner http://localhost:5000/data, bør du se følgende:

Ressurser for å lære kolbe

❇️ Den Kolbedokumentasjon er utmerket for læring. Den er godt strukturert, oversiktlig og er sannsynligvis den mest pålitelige ressursen for å lære Flask.

❇️ freeCodeCamp har også en flott YouTube-video på kolben. freeCodeCamp er et kjent navn for gratis, men høykvalitets læringsressurser.

❇️ Dette Udemy kurs er en god måte å lære hvordan du bygger enterprise-grade APIer i Flask. Den dekker verktøy som Flask-SQLALchemy og Flask-Smorest.

Konklusjon

Denne artikkelen var en kort introduksjon til Python Flask. Vi dekket hva det er, sammenlignet det med andre nettrammeverk, og bygde en enkel applikasjon. Til slutt koblet jeg ressurser for videre læring.

Deretter kan du sjekke ut hvordan du sikrer et Flask REST API med et JSON-netttoken.