python flask tutorial introduction flask
Denne indledende Python Flask-tutorial forklarer, hvad der er Flask, installation af Python, Virtualenv, Flask Hello World-eksempel med et afsnit om kodeeksempler, fejlretning og test:
Webstedsudvikling er mere en kunst end en færdighed. Det kræver tålmodighed og flid sammen med udholdenhed, mod og dedikation til at skabe det, der er nødvendigt for, at det bliver en reel succes. I disse dage er det vigtigt for eleverne at komme i fart så hurtigt som muligt.
Vi har oprettet denne Python Flask-tutorial, så de studerende kan komme op til hastighed og implementere både enkel og kompleks webprogrammering ved hjælp af Python 3.
Denne Python Flask-tutorial er mere som en flask-begynder-tutorial, som dækker installationen af Python, Virtualenv og andre vigtige pakker. I denne række tutorials installerer vi også Flask sammen med de andre nødvendige Flask-plugins. Vi har også inkluderet et afsnit om kodefejlfinding, test og kontinuerlig integration ved hjælp af Git Actions.
Hvad du lærer:
Liste over selvstudier i denne kolbeserie
Tutorial # 1: Python Flask Tutorial - Introduktion til Flask For Beginners
Tutorial # 2: Flaskeskabelon, form, visning og omdirigering med eksempler
Tutorial # 3: Flask Database Handling - Sådan bruges kolbe med en database
Tutorial # 4: Flask App og Flask Project Layout med Blueprint & Bootstrap
Tutorial # 5: Flaskedesignmønstre og bedste fremgangsmåder til webapplikationer
Tutorial # 6: Flask API-vejledning med eksempel | Udvidelse af kolbe med API'er
Tutorial # 7: Django Vs Flask Vs Node: Hvilken ramme skal du vælge
Tutorial # 8: Top 31 populære Python Flask Interview-spørgsmål med svar
Hvad er kolbe
Flask er en ramme om webudvikling. Det er en ramme med en indbygget udviklingsserver og en debugger.
mp3 gratis downloads til Android-telefoner
Flaskestruktur er i sig selv forskellig fra de andre arketyper, da det giver webudviklere mulighed for at være fleksible og komfortabelt imødekomme de ofte frigivne ændringer i softwareudviklingssamfundet.
Hvad bruges kolben til
Vi bruger Flask-rammen til at udvikle webapplikationer på Python-programmeringssprog. Det integreres med andre tjenester fra tredjepart og API'er for at bringe rigdom og mening til applikationen under udvikling. Flaskens kernekoncepter er enkle og har et lille fodaftryk.
Lad os starte med denne Python Flask-vejledning for at forstå webudvikling ved hjælp af et Flask GitHub-lager. Inden du fortsætter, skal du dog klone projektet fra Github for nem opfølgning på de diskuterede kodeeksempler.
Forudsætninger
Bortset fra de nævnte overskrifter i dette afsnit anbefaler vi at oprette en Github-konto. Lad os fortsætte med nedenstående trin i forudsætningerne.
Trin 1: Installer Python
Kontroller, om du har installeret Python 3 eller ej. Hvis ikke, skal du downloade Python 3 fra her og installer det i henhold til dit operativsystem.
Trin 2: Opret et virtuelt Python-miljø
Opret et virtuelt miljø ved hjælp af nedenstående kommando.
python3 -m venv venv
Brug nedenstående kommando til at aktivere det virtuelle Python-miljø.
source venv/bin/activate
Vi har givet et eksempel på aktivering og deaktivering af det virtuelle miljø nedenfor.
Alle de efterfølgende kommandoer i denne vejledning skal køre i et aktiveret virtuelt miljø. Installer hjulpakken, så vi kan bygge hjul inde i det virtuelle miljø.
pip install wheel
Trin 3: Kolbe download og insall
Vi skal udføre trinene til download af kolben og installere kolben ved hjælp af nedenstående trin.
Installer nu Flask.
pip install flask
Nogle af os kan lide at arbejde sammen med de seneste ændringer i kildekoden. Vi kan bruge kommandoen nedenfor til at installere med de seneste ændringer i kilderne til Flask.
Opret en midlertidig mappe.
mkdir tmp
Installer nu Flask fra Github-arkivet. Du skal forblive forbundet til internettet, før kommandoen nedenfor fungerer.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Se på konsoludgangene for at kontrollere den vellykkede installation. Kontroller nu, om vi har adgang til Flask-kommandoer.
flask --help
Du kan muligvis se nogle undtagelser om fraværet af en Flask-applikation. Forsøm dem dog, da vi ikke har oprettet nogen Flask-app. Vores app er en forekomst af Flask, som er en indpakning i Werkzeug-webrammen og Jinja-skabelonmotoren.
Værktøj
Werkzeug er et WSGI værktøjssæt. WSGI er kun en kaldekonvention, som webservere videresender webanmodninger til webapplikationer skrevet på Python-programmeringssprog.
Jinja
Templating er en vigtig færdighed hos webudviklere. Jinja er en fuldt udstyret og populær skabelonmotor til Python. Det er et ganske ekspressivt sprog og giver et robust sæt værktøjer til skabelonforfattere.
Trin 4: Installer MongoDB
Følg nedenstående trin for at installere MongoDB. Vi har beskrevet trinene til installation af det i en Debian-baseret Linux. Hvis du bruger et andet operativsystem, skal du åbne link og installer efter det tilsigtede operativsystem.
Installer gnupg til import af offentlig GPG-nøgle MongoDB.
sudo apt-get install gnupg
Importer nu nøglen ved hjælp af kommandoen nedenfor.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Opret kildelistefilen i henhold til din Linux-distribution. Vi har tilføjet 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
Kør opdateringskommando
sudo apt-get update
Installer nu MongoDB ved hjælp af kommandoen nedenfor.
sudo apt-get install -y mongodb-org
Når installationen er vellykket, skal du starte MongoDB ved hjælp af nedenstående kommando.
sudo systemctl start mongod
Kontroller status for MongoDB ved hjælp af kommandoen nedenfor.
sudo systemctl status mongod
Sørg nu for, at mongod automatisk starter ved systemgenstart ved at udstede nedenstående kommando.
sudo systemctl enable mongod
Kontroller nu, om du kan oprette forbindelse til MongoDB-serveren ved hjælp af mongo-klienten.
mongo
I mongoskallen kan du prøve at bruge hjælp og vise dbs-kommandoer.
Opret en kolbe-app
Brug kommandoen nedenfor til at installere flask-appbuilder og mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Opret en skeletapp med værdierne vist som kommentarer i nedenstående kodestykke.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Vi ser output svarende til den nedenfor.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Se på layoutet af projektet og appen. Vi har vist output fra trækommandoen nedenfor.
Lad os se på Flask-konfigurationsfilen. Det er en standardkonfiguration, der genereres som et resultat af den sidste kommando. Ukommentar 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 at køre skeletapp'en skal du bruge kommandoen nedenfor på terminalen.
flask run
Kolbe Hello World
For at oprette dit første program i flaskTutorialApp skal du åbne fil views.py under app-biblioteket og tilføje følgende kode. Se efter importerklæringer, der er angivet i filen. Tilføj disse udsagn, 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())
Gem filen efter tilføjelse af ovenstående kildekode. Gå til projektets rodkatalog og brug nedenstående kommando til at køre Flaskens udviklingsserver.
flask run
Naviger nu til http: // localhost: 5000 / hej / for at se output i browseren.
Fejlfinding
I øjeblikket kører udviklingsserveren ikke i fejlretningstilstand. Uden fejlretningstilstand er det vanskeligt at finde fejlene i kildekoden til Flask Application.
Fejlfindingstilstand i kolbe resulterer i følgende:
- Fejlfindingstilstand aktiverer automatisk genindlæser. Det betyder, at vi ikke behøver at genstarte udviklingsserveren, efter at vi har foretaget ændringer i applikationens kildekode.
- Fejlfindingstilstand aktiverer Python-fejlfindingsprogrammet. Vi kan inspicere værdierne for variabler under undtagelsen.
- Fejlfindingstilstand muliggør fejlfinding af Flask-applikationer. Vi kan kontrollere værdierne af forskellige variabler i debugging-sessioner.
Stop udviklingsserveren, hvis den allerede kører. Du kan bruge CTRL + C eller Keyboard interrupt for at gøre det samme.
Brug følgende kode til at aktivere fejlretningstilstand og køre udviklingsserveren midlertidigt.
FLASK_ENV=development flask run
Søg i konsollen for fejlfindings-PIN og noter den.
Lad os nu ændre ovenstående skriftlige HelloWorld-visning med de følgende linjer i kodestykket. Bemærk, at vi har introduceret en brugerdefineret undtagelse.
@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 / hej /, og du vil se, at applikationen har rejst en undtagelse. Browseren viser stakksporingen som vist nedenfor.

Se også på konsollen, hvor udviklingsserveren kører. Du finder ud af, at ændringerne i views.py denne gang automatisk registreres, og fejlretningsserveren genstarter af sig selv. Nu behøver vi ikke genstarte det manuelt.
Konsollen har linjer som vist nedenfor. Vi er nødt til at notere debug-pinkoden til 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
Tjek nu stacksporingen i browseren, og gå til den sidste linje. Klik på den for at udvide dens visning, og klik på CLI-ikonet for at åbne skallen i interaktiv tilstand.

Når du har åbnet den, vil du se, at browseren viser en anmodning om fejlfinding af PIN-kode. Giv debug-pinkoden, og klik på OK.

Når vi går videre efter at have givet debug-pinkoden, kan vi få adgang til den interaktive shell.
hvor mange anvendelige værter er tilgængelige givet en klasse c ip-adresse med standard undernetmaske?
Vi får adgang til skallen fra browseren og kan inspicere værdierne for variabler for at finde årsagen til undtagelsen og håndtere fejlen på en bedre måde. Se et af eksemplerne vist i billedet nedenfor.

Skift nu koden i view.py, som vist nedenfor. Bemærk, at vi har kommenteret linjen, der havde den hævede undtagelse.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Test af kolbeapplikationen
Lad os nu skrive vores første test til Flask-applikationen, som vi udvikler. Installer først PyTest. PyTest er en testramme. Det hjælper os med at skrive bedre kode.
Desuden er det kun fordi vi kan skrive enhedstest, mens vi udvikler vores applikationer, det muligt at følge TDD-tilgangen. TDD står for Test-Driven Development. I vores efterfølgende tutorials af denne serie skal vi altid skrive test først og udvikle vores synspunkter eller modeller.
Installer PyTest
pip install pytest
Opret nu et bibliotek kaldet tests inde i app-biblioteket, og opret derefter en fil med navnet test_hello.py. Lad os skrive vores første enhedstest for at teste vores syn.
Kopier følgende kodestykke, og indsæt 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
Brug nedenstående pytest-kommando til at køre testene. PyTest indsamler automatisk testene og viser resultaterne på standardoutputtet.

Opret en GitHub-arbejdsgang
Vi bruger Git Actions til at oprette en CI / CD-arbejdsgang til vores prøveapplikation. Følg nedenstående trin for dit projekt.
Trin 1: Naviger til arkivsiden på GitHub. Klik på Git Actions.

Trin 2: Rul ned på siden, og find en eksisterende workflow-skabelon til en Python-pakke.

Trin 3: Opsæt Python-pakke Workflow.

Trin 4: Når python-package.yml-arbejdsgangskonfigurationen åbnes, skal du opdatere den baseret på de givne yaml-ekstra tagværdier.
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 ønsker at teste vores Flask-applikation på den nyeste Ubuntu Linux-distribution. Ud over OS vil vi kun køre vores tests ved hjælp af Python 3.7 og Python 3.8.
Trin 5: Forpligt python-package.yml med de opdaterede værdier.

Trin 6: Forpligtelsen på den forrige side fører os til GitAction-jobene.

Trin 7: (Valgfri)
På siden Github Jobs til eksemplet tutorial-app kan vi oprette et badge og placere det på README.md-filen til visning af build-status.
Nu, når ændringerne er forpligtet til mastergrenen, følges Git Workflow, som skrevet i python-package.yml, og køres på Git Actions.
Konklusion
I denne vejledning har vi dækket alle basiskoncepter fra forudsætninger til opsætning af CI / CD-arbejdsgang til en webapplikation udviklet ved hjælp af Flask - En Python-baseret webudviklingsramme.
Denne vejledning dækker alle nødvendige trin såsom installation af Python, download og installation af Flask, arbejde med Flask-Appbuilder, test med PyTest osv. For at komme i gang med webudvikling ved hjælp af Python. Webudviklingssamfundet sammenligner normalt Flask med en anden populær Python-webudviklingsramme kaldet Django.
Vi forklarer disse forskelle og sammenligner også disse rammer i en af vejledningerne i denne serie.
Anbefalet læsning
- Django Vs Flask Vs Node: Hvilken ramme skal du vælge
- Flask API-vejledning med eksempel | Udvidelse af kolbe med API'er
- Flask App og Flask Project Layout med Blueprint & Bootstrap
- Flask Database Handling - Sådan bruges kolbe med en database
- Flaskedesignmønstre og bedste fremgangsmåder til webapplikationer
- Flaskeskabelon, form, visning og omdirigering med eksempler
- Top 31 populære Python Flask Interview-spørgsmål med svar
- Python-vejledning til begyndere (GRATIS Python-træning)