python flask tutorial introduction flask
Denna inledande Python Flask-handledning förklarar vad som är Flask, installation av Python, Virtualenv, Flask Hello World-exempel med ett avsnitt om kodexempel, felsökning och test:
Webbplatsutveckling är mer en konst än en färdighet. Det kräver tålamod och flit, tillsammans med uthållighet, mod och engagemang för att skapa det som är nödvändigt för att det ska bli en riktig framgång. Dessa dagar är det viktigt för eleverna att komma i fart så snart som möjligt.
Vi har skapat denna Python Flask-handledning för eleverna att få fart på och implementera enkel såväl som komplex webbprogrammering med Python 3.
Denna Python Flask-handledning är mer som en flask-nybörjarhandledning, som kommer att täcka installationen av Python, Virtualenv och andra viktiga paket. I den här handledningsserien installerar vi också Flask tillsammans med de andra nödvändiga Flask-plugins. Vi har också inkluderat ett avsnitt om felsökning av kod, testning och kontinuerlig integration med Git Actions.
Vad du kommer att lära dig:
Lista över handledning i denna kolvserie
Handledning nr 1: Python Flask Tutorial - Introduktion till kolv för nybörjare
Handledning nr 2: Kolvmall, formulär, vy och omdirigering med exempel
Handledning nr 3: Flask Database Handling - Hur man använder Flask med en databas
Handledning nr 4: Flask-app och flaskprojektlayout med Blueprint & Bootstrap
Handledning nr 5: Flaskdesignmönster och bästa metoder för webbapplikationer
Självstudie nr 6: Flask API-handledning med exempel | Utöka flaskan med API: er
Självstudie 7: Django Vs Flask Vs Node: Vilket ramverk ska man välja
Handledning # 8: Topp 31 populära Python Flask-intervjufrågor med svar
Vad är kolv
Flask är ett ramverk för webbutveckling. Det är ett ramverk med en inbyggd utvecklingsserver och en felsökare.
hur man öppnar dat-filen i pdf
Flaskramen skiljer sig i sig från de andra arketyperna, eftersom det gör det möjligt för webbutvecklare att vara flexibla och att bekvämt tillgodose de ofta släppta förändringarna i programvaruutvecklingsgemenskapen.
Vad används kolven för
Vi använder Flask-ramverket för att utveckla webbapplikationer på Python-programmeringsspråk. Det integreras med andra tredjepartstjänster och API: er för att ge rikedom och betydelse för applikationen under utveckling. Flaskens kärnkoncept är enkla och har ett litet fotavtryck.
Låt oss börja med denna Python Flask-handledning för att förstå webbutveckling med hjälp av ett Flit GitHub-arkiv. Innan du fortsätter ska du dock klona projektet från Github för enkel uppföljning av de diskuterade kodexemplen.
Förutsättningar
Utöver de nämnda rubrikerna i detta avsnitt rekommenderar vi att du skapar ett Github-konto. Låt oss fortsätta med nedanstående steg i förutsättningarna.
Steg 1: Installera Python
Kontrollera om du har installerat Python 3 eller inte. Om inte, ladda sedan ner Python 3 från här och installera det enligt ditt operativsystem.
Steg 2: Skapa en virtuell Python-miljö
Skapa en virtuell miljö med kommandot nedan.
python3 -m venv venv
Använd kommandot nedan för att aktivera den virtuella Python-miljön.
source venv/bin/activate
Vi har gett ett exempel på aktivering och avaktivering av den virtuella miljön nedan.
Alla efterföljande kommandon i den här självstudien ska köras i en aktiverad virtuell miljö. Installera hjulpaketet så att vi kan bygga hjul inuti den virtuella miljön.
pip install wheel
Steg 3: Kolvnedladdning och insall
Vi måste utföra steg för nedladdning av kolven och installera kolven med hjälp av nedanstående steg.
Installera nu Flask.
pip install flask
Några av oss gillar att arbeta tillsammans med de senaste ändringarna av källkoden. Vi kan använda kommandot nedan för att installera med de senaste ändringarna av källorna till Flask.
Skapa en tillfällig katalog.
mkdir tmp
Installera nu Flask från Github-förvaret. Du måste förbli ansluten till internet för att kommandot nedan ska fungera.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Titta på konsolutgångarna för att kontrollera den lyckade installationen. Kontrollera nu om vi kan komma åt Flask-kommandon.
flask --help
Du kan se några undantag om frånvaron av en Flask-applikation. Men försumma dem eftersom vi inte har skapat någon Flask-app. Vår app är en instans av Flask, som är ett omslag på Werkzeug webbramverk och Jinja mallmotor.
Verktyg
Werkzeug är en WSGI-verktygssats. WSGI är bara en samtalskonvention för webbservrar att vidarebefordra webbförfrågningar till webbapplikationer skrivna på Python-programmeringsspråk.
Jinja
Templating är en viktig kompetens hos webbutvecklare. Jinja är en fullt utrustad och populär mallmotor för Python. Det är ett ganska uttrycksfullt språk och ger en robust uppsättning verktyg till mallförfattare.
Steg 4: Installera MongoDB
Följ stegen nedan för att installera MongoDB. Vi har beskrivit stegen för att installera den i en Debian-baserad Linux. Om du använder ett annat operativsystem öppnar du länk och installera enligt det avsedda operativsystemet.
Installera gnupg för att importera MongoDB offentlig GPG-nyckel.
sudo apt-get install gnupg
Importera nu nyckeln med kommandot nedan.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Skapa källlistafilen enligt din Linux-distribution. Vi har lagt till källlistan enligt 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
Kör uppdateringskommandot
sudo apt-get update
Installera nu MongoDB med kommandot nedan.
sudo apt-get install -y mongodb-org
När installationen är klar startar du MongoDB med kommandot nedan.
sudo systemctl start mongod
Kontrollera MongoDB: s status med hjälp av kommandot nedan.
sudo systemctl status mongod
Se nu till att mongod automatiskt startar vid omstart av systemet genom att utfärda kommandot nedan.
sudo systemctl enable mongod
Kontrollera nu om du kan ansluta till MongoDB-servern med mongo-klienten.
mongo
I mongoskalet försöker du använda hjälp och visa dbs-kommandon.
Skapa en flaskapp
Använd kommandot nedan för att installera flask-appbuilder och mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Skapa en skelettapp med värdena som kommentarer i nedanstående kodavsnitt.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Vi ser produktionen som liknar den som ges nedan.
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å layouten för projektet och appen. Vi har visat resultatet av trädkommandot nedan.
Låt oss ta en titt på Flask-konfigurationsfilen. Det är en standardkonfiguration som genereras som ett resultat av det senaste kommandot. Kommentarer Cyborg som visas nedan.
# 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
För att köra skelettappen använder du kommandot nedan på terminalen.
flask run
Kolv Hello World
För att skapa ditt första program i flaskTutorialApp, öppna file views.py under appkatalogen och lägg till följande kod. Leta efter importuttalanden i filen. Lägg till dessa uttalanden om de inte redan finns.
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())
Spara filen efter att du har lagt till källkoden ovan. Gå till projektets rotkatalog och använd kommandot nedan för att köra kolvens utvecklingsserver.
flask run
Navigera nu till http: // localhost: 5000 / hej / för att se utdata i webbläsaren.
Felsökning
För närvarande kör utvecklingsservern inte i felsökningsläget. Utan felsökningsläge är det svårt att hitta felen i flaskapplikationens källkod.
Felsökningsläge i kolv resulterar i följande:
- Felsökningsläge aktiverar automatisk omladdare. Det betyder att vi inte behöver starta om utvecklingsservern efter att vi har gjort ändringar i applikationens källkod.
- Felsökningsläge aktiverar Python-felsökaren. Vi kan inspektera värdena på variabler under undantaget.
- Felsökningsläge möjliggör felsökning av flaskapplikationer. Vi kan kontrollera värdena på olika variabler i felsökningssessioner.
Stoppa utvecklingsservern om den redan körs. Du kan använda CTRL + C eller Keyboard interrupt för att göra detsamma.
Använd följande kod för att aktivera felsökningsläget och köra utvecklingsservern tillfälligt.
FLASK_ENV=development flask run
Sök i konsolen för felsöknings-PIN och anteckna den.
Låt oss nu ändra ovanstående skrivna HelloWorld-vy med följande rader i kodavsnittet. Observera att vi har infört ett anpassat undantag.
gratis studio youtube till mp3-omvandlare
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Navigera till http: // localhost: 5000 / hej /, så ser du att applikationen har gjort ett undantag. Webbläsaren visar stackspårningen, som visas nedan.

Se vidare på konsolen där utvecklingsservern körs. Du kommer att upptäcka att den här gången upptäcks ändringarna i views.py automatiskt och felsökningsservern startar om själv. Nu behöver vi inte starta om det manuellt.
Konsolen har linjer, som visas nedan. Vi måste notera felsöknings-PIN-koden för senare.
* 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
Kontrollera nu stackspårningen i webbläsaren och gå till sista raden. Klicka på den för att utöka vyn och klicka på CLI-ikonen för att öppna skalet i interaktivt läge.

När du har öppnat den kommer du att se att webbläsaren visar en uppmaning om felsöknings-PIN. Ange felsöknings-PIN och klicka på OK.

När vi har gått vidare efter att ha gett felsöknings-PIN kan vi komma åt det interaktiva skalet.
Vi kommer åt skalet från webbläsaren och kan inspektera värdena på variabler för att hitta orsaken till undantaget och hantera felet på ett bättre sätt. Titta på ett av exemplen som visas i bilden nedan.

Ändra nu koden i view.py, som visas nedan. Observera att vi har kommenterat linjen som hade det upphöjda undantaget.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Testa kolvapplikationen
Låt oss nu skriva vårt första test för Flask-applikationen som vi utvecklar. Installera först PyTest. PyTest är ett testramverk. Det hjälper oss att skriva bättre kod.
Dessutom, bara för att vi kan skriva enhetstest medan vi utvecklar våra applikationer, är det möjligt att följa TDD-metoden. TDD står för testdriven utveckling. I våra efterföljande handledning av denna serie ska vi alltid skriva tester först och utveckla våra åsikter eller modeller.
Installera PyTest
pip install pytest
Skapa nu en katalog som heter test i appkatalogen och skapa en fil som heter test_hello.py. Låt oss skriva vårt första enhetstest för att testa vår syn.
Kopiera följande kodavsnitt och klistra in det 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
Använd nedanstående pytest-kommando för att köra testerna. PyTest samlar automatiskt in testerna och visar resultaten på standardutmatningen.

Skapa ett GitHub-arbetsflöde
Vi använder Git Actions för att skapa ett CI / CD-arbetsflöde för vår exempelapplikation. Följ stegen nedan för ditt projekt.
Steg 1: Navigera till förvarssidan på GitHub. Klicka på Git Actions.

Steg 2: Rulla ner på sidan och hitta en befintlig arbetsflödesmall för ett Python-paket.

Steg 3: Konfigurera Python-paketets arbetsflöde.

Steg 4: När konfigurationen av python-package.yml-arbetsflödet öppnas uppdaterar du den baserat på de givna yaml-ytterligare taggvärdena.
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 vill testa vår Flask-applikation på den senaste Ubuntu Linux-distributionen. Förutom operativsystemet vill vi bara köra våra tester med Python 3.7 och Python 3.8.
Steg 5: Begå python-package.yml med de uppdaterade värdena.

Steg 6: Åtagandet på föregående sida tar oss till GitActions-jobb.

Steg 7: (Frivillig)
På Github Jobs-sidan för exempelprogrammet kan vi skapa ett märke och placera det på README.md-filen för att visa byggstatus.
Nu, när ändringarna är kopplade till huvudgrenen, kommer Git Workflow, som skrivet i python-package.yml att följas och köras på Git Actions.
Slutsats
I den här handledningen har vi täckt alla baskoncept från förutsättningar för att ställa in CI / CD-arbetsflöde för en webbapplikation utvecklad med Flask - En Python-baserad webbutvecklingsram.
Denna handledning täcker alla nödvändiga steg som att installera Python, ladda ner och installera Flask, arbeta med Flask-Appbuilder, testa med PyTest etc. för att komma igång med webbutveckling med Python. Webbutvecklingsgemenskapen jämför vanligtvis Flask med en annan populär Python-webbutvecklingsram som heter Django.
Vi kommer att förklara dessa skillnader och kommer också att jämföra dessa ramar i en av handledningarna i denna serie.
Rekommenderad läsning
- Django Vs Flask Vs Node: Vilket ramverk ska man välja
- Flask API-handledning med exempel | Utöka flaskan med API: er
- Flask-app och flaskprojektlayout med Blueprint & Bootstrap
- Flask Database Handling - Hur man använder Flask med en databas
- Flaskdesignmönster och bästa metoder för webbapplikationer
- Kolvmall, formulär, vy och omdirigering med exempel
- Topp 31 populära Python Flask-intervjufrågor med svar
- Python-handledning för nybörjare (praktisk Python-träning)