python flask tutorial introduction flask
Denne innledende Python Flask-opplæringen forklarer hva som er Flask, installasjon av Python, Virtualenv, Flask Hello World-eksempel med en seksjon om kodeeksempler, feilsøking og testing:
Nettstedsutvikling er mer en kunst enn en ferdighet. Det krever tålmodighet og flid, sammen med utholdenhet, mot og engasjement for å skape det som er nødvendig for at det skal bli en virkelig suksess. I disse dager er det viktig for elever å komme i fart så snart som mulig.
Vi har laget denne Python Flask-opplæringen for studentene for å komme i gang og implementere enkel så vel som kompleks webprogrammering ved hjelp av Python 3.
Denne Python Flask-opplæringen er mer som en opplæringsveiledning for nybegynnere, som vil dekke installasjonen av Python, Virtualenv og andre viktige pakker. I denne veiledningen vil vi også installere Flask sammen med de andre nødvendige Flask-pluginene. Vi har også tatt med en del om feilsøking, testing og kontinuerlig integrering av koder ved hjelp av Git Actions.
Hva du vil lære:
Liste over opplæringsprogrammer i denne flaskeserien
Opplæring # 1: Python Flask Tutorial - Introduction to Flask For Beginners
Opplæring nr. 2: Kolbemal, skjema, visning og omdirigering med eksempler
Opplæring # 3: Flask Database Handling - Hvordan bruke kolbe med en database
Opplæring # 4: Flask App og Flask Project Layout With Blueprint & Bootstrap
Opplæring # 5: Flaskedesignmønstre og beste fremgangsmåter for webapplikasjoner
Opplæring # 6: Flask API-veiledning med eksempel | Utvide kolbe med API-er
Opplæring # 7: Django Vs Flask Vs Node: Hvilken ramme du skal velge
Opplæring # 8: Topp 31 populære Python Flask-intervjuspørsmål med svar
Hva er kolbe
Flask er et rammeverk for webutvikling. Det er et rammeverk med en innebygd utviklingsserver og en feilsøking.
hvordan åpne dat-fil i pdf
Flaskens rammeverk er i seg selv forskjellig fra de andre arketypene, ettersom det gjør det mulig for webutviklere å være fleksible og komfortabelt tilpasse de ofte utgitte endringene i programvareutviklingssamfunnet.
Hva brukes kolbe til?
Vi bruker Flask-rammeverket for å utvikle webapplikasjoner på Python-programmeringsspråk. Den integreres med andre tredjeparts tjenester og APIer for å gi rikdom og mening til applikasjonen under utvikling. Flask sine kjernekonsepter er enkle, og den har et lite fotavtrykk.
La oss starte med denne Python Flask-veiledningen for å forstå webutvikling ved hjelp av et Flask GitHub-arkiv. Før du fortsetter, må du imidlertid klone prosjektet fra Github for enkel oppfølging av de diskuterte kodeeksemplene.
Forutsetninger
Annet enn de nevnte overskriftene i denne delen, anbefaler vi at du oppretter en Github-konto. La oss gå videre med trinnene nedenfor i forutsetningene.
Trinn 1: Installer Python
Sjekk om du har installert Python 3 eller ikke. Hvis ikke, last ned Python 3 fra her og installer den i henhold til operativsystemet.
Trinn 2: Opprett et virtuelt Python-miljø
Opprett et virtuelt miljø ved hjelp av kommandoen nedenfor.
python3 -m venv venv
Bruk kommandoen nedenfor for å aktivere det virtuelle Python-miljøet.
source venv/bin/activate
Vi har gitt et eksempel på aktivering og deaktivering av det virtuelle miljøet nedenfor.
Alle påfølgende kommandoer i denne opplæringen skal kjøre i et aktivert virtuelt miljø. Installer hjulpakken slik at vi kan bygge hjul i det virtuelle miljøet.
pip install wheel
Trinn 3: Nedlasting av kolbe og insall
Vi må utføre trinnene for nedlasting av flasken og installere flasken ved hjelp av trinnene nedenfor.
Installer nå Flask.
pip install flask
Noen av oss liker å jobbe sammen med de siste endringene i kildekoden. Vi kan bruke kommandoen nedenfor for å installere med de siste endringene i kildene til Flask.
Lag en midlertidig katalog.
mkdir tmp
Installer nå Flask fra Github-depotet. Du må forbli koblet til internett for at kommandoen nedenfor skal fungere.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Se på konsollutgangene for å sjekke vellykket installasjon. Sjekk nå om vi har tilgang til Flask-kommandoer.
flask --help
Du kan se noen unntak om fraværet av et Flask-program. Forsøm dem imidlertid, ettersom vi ikke har opprettet noen Flask-app. Appen vår er en forekomst av Flask, som er en innpakning på Werkzeug-nettverket og Jinja-malmotoren.
Verktøy
Werkzeug er et WSGI verktøysett. WSGI er bare en kallkonvensjon for webservere å videresende nettforespørsler til webapplikasjoner skrevet på Python-programmeringsspråk.
Jinja
Mal er en viktig ferdighetssett for webutviklere. Jinja er en fullverdig og populær malmotor for Python. Det er et ganske uttrykksfullt språk og gir et robust sett med verktøy til malforfattere.
Trinn 4: Installer MongoDB
Følg trinnene nedenfor for å installere MongoDB. Vi har beskrevet trinnene for å installere det i en Debian-basert Linux. Hvis du bruker et annet operativsystem, får du tilgang til lenke og installer i henhold til det tiltenkte operativsystemet.
Installer gnupg for å importere MongoDB offentlig GPG-nøkkel.
sudo apt-get install gnupg
Importer nå nøkkelen med kommandoen nedenfor.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Opprett kildelistefilen i henhold til Linux-distribusjonen. Vi har lagt til kildelisten i henhold til Debian.
echo 'deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.2 main' | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
Kjør oppdateringskommandoen
sudo apt-get update
Installer nå MongoDB ved å bruke kommandoen nedenfor.
sudo apt-get install -y mongodb-org
Når installasjonen er vellykket, starter du MongoDB ved å bruke kommandoen nedenfor.
sudo systemctl start mongod
Sjekk statusen til MongoDB ved å bruke kommandoen nedenfor.
sudo systemctl status mongod
Forsikre deg om at mongod automatisk starter ved omstart av systemet ved å utstede kommandoen nedenfor.
sudo systemctl enable mongod
Sjekk nå om du kan koble til MongoDB-serveren ved hjelp av mongo-klienten.
mongo
I mongo-skallet kan du prøve å bruke hjelpen og vise dbs-kommandoer.
Lag en kolbe-app
Bruk kommandoen nedenfor for å installere flask-appbuilder og mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Opprett en skjelettapp med verdiene vist som kommentarer i kodebiten nedenfor.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Vi vil se utdataene som ligner på den som er gitt nedenfor.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Ta en titt på utformingen av prosjektet og appen. Vi har vist utdataene fra trekommandoen nedenfor.
La oss ta en titt på Flask-konfigurasjonsfilen. Det er en standardkonfigurasjon generert som resultat av den siste kommandoen. Kommentarer Cyborg tema, som vist nedenfor.
# Theme configuration for Cybord=g # these themes are located on static/appbuilder/css/themes # We can create our own and easily use them by placing them on the same dir structure to override #APP_THEME = 'bootstrap-theme.css' # default bootstrap #APP_THEME = 'cerulean.css' # cerulean #APP_THEME = 'amelia.css' # amelia theme #APP_THEME = 'cosmo.css' # cosmo theme APP_THEME = 'cyborg.css' # cyborg theme #APP_THEME = 'flatly.css' # flatly theme
For å kjøre skjelettappen, bruk kommandoen nedenfor på terminalen.
flask run
Flask Hello World
For å lage ditt første program i flaskTutorialApp, åpne file views.py under appkatalogen og legg til følgende kode. Se etter importuttalelser gitt i filen. Legg til disse uttalelsene hvis de ikke allerede er til stede.
from flask_appbuilder import BaseView, expose from app import appbuilder class HelloWorld(BaseView): ''' This first view of the tutorial ''' route_base = '/hello' @expose('/') def hello(self): return 'Hello, World! from Software Testing Help' # at the end of the file appbuilder.add_view_no_menu(HelloWorld())
Lagre filen etter å ha lagt til kildekoden ovenfor. Gå til prosjektets rotkatalog og bruk kommandoen nedenfor for å kjøre Flaskens utviklingsserver.
flask run
Naviger nå til http: // localhost: 5000 / hallo / for å se utdataene i nettleseren.
beste vr apps for vr box
Feilsøking
For tiden kjører ikke utviklingsserveren i feilsøkingsmodus. Uten feilsøkingsmodus er det vanskelig å finne feilene i kildekoden til Flask Application.
Feilsøkingsmodus i kolbe resulterer i følgende:
- Feilsøkingsmodus aktiverer automatisk omlastning. Det betyr at vi ikke trenger å starte utviklingsserveren på nytt etter at vi har gjort endringer i kildekoden til applikasjonen.
- Feilsøkingsmodus aktiverer Python-feilsøkingsprogrammet. Vi kan inspisere verdiene til variabler under unntaket.
- Feilsøkingsmodus muliggjør feilsøking av Flask-applikasjoner. Vi kan sjekke verdiene til forskjellige variabler i feilsøkingsøkter.
Stopp utviklingsserveren hvis den allerede kjører. Du kan bruke CTRL + C eller Keyboard interrupt for å gjøre det samme.
Bruk følgende kode for å aktivere feilsøkingsmodus og kjøre utviklingsserveren midlertidig.
FLASK_ENV=development flask run
Søk i konsollen for feilsøkings-PIN og noter den.
La oss nå endre ovenstående skriftlige HelloWorld-visning med følgende linjer i kodebiten. Legg merke til at vi har introdusert et tilpasset unntak.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Naviger til http: // localhost: 5000 / hallo /, og du vil se at applikasjonen har reist et unntak. Nettleseren viser stakksporingen, som vist nedenfor.

Videre, se på konsollen der utviklingsserveren kjører. Du vil oppdage at endringene i views.py oppdages automatisk denne gangen, og feilsøkingsserveren starter på nytt av seg selv. Nå trenger vi ikke å starte den på nytt manuelt.
Konsollen vil ha linjer, som vist nedenfor. Vi må notere feilsøkings-PIN-koden for senere.
* Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading 2020-06-02 14:59:49,354:INFO:werkzeug: * Detected change in 'https://cdn.softwaretestinghelp.com/work/sth/flaskTutorialApp/app/views.py', reloading * Restarting with stat 2020-06-02 14:59:49,592:INFO:werkzeug: * Restarting with stat * Debugger is active! * Debugger PIN: 150-849-897
Sjekk nå stabelsporingen i nettleseren og gå til siste linje. Klikk på den for å utvide visningen og klikk på CLI-ikonet for å åpne skallet i interaktiv modus.

Når du har åpnet den, vil du se at nettleseren vil vise en melding om feilsøkingskode. Gi feilsøkings-PIN og klikk på OK.

Når vi fortsetter etter å ha gitt feilsøkings-PIN-koden, kan vi få tilgang til det interaktive skallet.
Vi får tilgang til skallet fra nettleseren og kan inspisere verdiene til variabler for å finne årsaken til unntaket og håndtere feilen på en bedre måte. Se på et av eksemplene vist i bildet nedenfor.

Endre nå koden i view.py, som vist nedenfor. Merk at vi har kommentert linjen som hadde det hevede unntaket.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Testing av kolbeapplikasjonen
La oss nå skrive vår første test for Flask-applikasjonen vi utvikler. Først installerer du PyTest. PyTest er et testrammeverk. Det hjelper oss å skrive bedre kode.
Dessuten, bare fordi vi kan skrive enhetstester mens vi utvikler applikasjonene våre, er det mulig å følge TDD-tilnærmingen. TDD står for Test-Driven Development. I de påfølgende opplæringene våre i denne serien skal vi alltid skrive tester først og utvikle våre synspunkter eller modeller.
Installer PyTest
pip install pytest
Opprett nå en katalog som heter tester inne i appkatalogen, og opprett en fil som heter test_hello.py. La oss skrive vår første enhetstest for å teste vårt syn.
Kopier følgende kodebit og lim det inn i test_hello.py.
#!/usr/bin/env python from app import appbuilder import pytest @pytest.fixture def client(): ''' A pytest fixture for test client ''' appbuilder.app.config('TESTING') = True with appbuilder.app.test_client() as client: yield client def test_hello(client): ''' A test method to test view hello ''' resp = client.get('/hello', follow_redirects=True) assert 200 == resp.status_code
Bruk pytest-kommandoen nedenfor for å kjøre testene. PyTest samler automatisk testene og viser resultatene på standardutdata.

Opprett en GitHub-arbeidsflyt
Vi bruker Git Actions for å lage en CI / CD-arbeidsflyt for eksempelprogrammet vårt. Følg trinnene nedenfor for prosjektet ditt.
Trinn 1: Naviger til arkivsiden på GitHub. Klikk på Git Actions.

Trinn 2: Bla ned på siden og finn en eksisterende arbeidsflytmal for en Python-pakke.

Trinn 3: Sett opp arbeidsflyten for Python-pakken.

Trinn 4: Når konfigurasjonen av python-package.yml-arbeidsflyten åpnes, oppdaterer du den basert på de oppgitte yaml-tilleggsverdiene.
name: flaskTutorialApp jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: (3.7, 3.8) mongodb-version: (4.2) steps: - name: Start MongoDB uses: supercharge/mongodb-github-action@1.3.0 with: mongodb-version: ${{ matrix.mongodb-version }} # other values
Vi vil teste Flask-applikasjonen vår på den nyeste Ubuntu Linux-distribusjonen. I tillegg til operativsystemet ønsker vi å kjøre testene våre bare ved hjelp av Python 3.7 og Python 3.8.
Trinn 5: Forplikt python-package.yml med de oppdaterte verdiene.

Trinn 6: Forpliktelsen på forrige side tar oss til GitActions-jobbene.

Trinn 7: (Valgfri)
På Github Jobs-siden for eksempelopplæringsappen kan vi lage et merke og plassere det på README.md-filen for å vise byggestatus.
Nå, når endringene er forpliktet til hovedgrenen, vil Git Workflow, som skrevet i python-package.yml, følges og kjøres på Git Actions.
Konklusjon
I denne veiledningen har vi dekket alle basiskonseptene fra forutsetninger for å sette opp CI / CD-arbeidsflyt for en webapplikasjon utviklet ved hjelp av Flask - Et Python-basert webutviklingsrammeverk.
Denne opplæringen dekker alle nødvendige trinn som å installere Python, laste ned og installere Flask, jobbe med Flask-Appbuilder, teste med PyTest, etc. for å komme i gang med webutvikling ved hjelp av Python. Nettutviklingssamfunnet sammenligner vanligvis Flask med et annet populært rammeverk for Python webutvikling som heter Django.
Vi vil forklare disse forskjellene og vil også sammenligne disse rammene i en av veiledningene i denne serien.
Anbefalt lesing
- Django Vs Flask Vs Node: Hvilken ramme du skal velge
- Flask API-veiledning med eksempel | Utvide kolbe med API-er
- Flask App og Flask Project Layout With Blueprint & Bootstrap
- Flask Database Handling - Hvordan bruke kolbe med en database
- Flaskedesignmønstre og beste fremgangsmåter for webapplikasjoner
- Kolbemal, skjema, visning og omdirigering med eksempler
- Topp 31 populære Python Flask-intervjuspørsmål med svar
- Python-opplæring for nybegynnere (praktisk GRATIS Python-trening)