python flask tutorial introduction flask
Dieses einführende Python Flask-Tutorial erklärt, was Flask ist, Installation von Python, Virtualenv, Flask Hello World-Beispiel mit einem Abschnitt über Codebeispiele, Debugging und Testen:
Website-Entwicklung ist eher eine Kunst als eine Fähigkeit. Es erfordert Geduld und Fleiß sowie Ausdauer, Mut und Engagement, um das zu schaffen, was für einen echten Erfolg erforderlich ist. Heutzutage ist es wichtig, dass die Lernenden so schnell wie möglich mit der Geschwindigkeit beginnen.
Wir haben dieses Python Flask-Tutorial für die Schüler erstellt, um sich mit Python 3 vertraut zu machen und einfache und komplexe Webprogrammierung zu implementieren.
Dieses Python Flask-Tutorial ähnelt eher einem Flask-Anfänger-Tutorial, das die Installation von Python, Virtualenv und anderen wichtigen Paketen behandelt. In dieser Reihe von Tutorials werden wir auch Flask zusammen mit den anderen erforderlichen Flask-Plugins installieren. Wir haben auch einen Abschnitt zum Debuggen, Testen und zur kontinuierlichen Integration von Code mithilfe von Git-Aktionen hinzugefügt.
Was du lernen wirst:
Liste der Tutorials in dieser Kolbenserie
Tutorial Nr. 1: Python Flask Tutorial - Einführung in Flask für Anfänger
Tutorial # 2: Flaschenvorlage, Formular, Ansicht und Umleitung mit Beispielen
Tutorial # 3: Handhabung der Flaschendatenbank - Verwendung der Flasche mit einer Datenbank
Tutorial # 4: Flask App und Flask Project Layout mit Blueprint & Bootstrap
Tutorial Nr. 5: Flask Design Patterns und Best Practices für Webanwendungen
Tutorial # 6: Flask API Tutorial mit Beispiel | Flasche mit APIs erweitern
Tutorial Nr. 7: Django Vs Flask Vs Node: Welches Framework soll ausgewählt werden?
Tutorial Nr. 8: Top 31 beliebte Python Flask Interview Fragen mit Antworten
Was ist eine Flasche?
Flask ist ein Webentwicklungs-Framework. Es ist ein Framework mit einem integrierten Entwicklungsserver und einem Debugger.
App, mit der Sie ein anderes Telefon ausspionieren können
Das Flask-Framework an sich unterscheidet sich von den anderen Archetypen, da es Webentwicklern ermöglicht, flexibel zu sein und die häufig veröffentlichten Änderungen in der Softwareentwicklungs-Community bequem zu berücksichtigen.
Wofür wird die Flasche verwendet?
Wir verwenden das Flask-Framework für die Entwicklung von Webanwendungen in der Programmiersprache Python. Es lässt sich in andere Dienste und APIs von Drittanbietern integrieren, um der in der Entwicklung befindlichen Anwendung eine Fülle und Bedeutung zu verleihen. Die Kernkonzepte von Flask sind einfach und haben einen winzigen Platzbedarf.
Beginnen wir mit diesem Python Flask-Tutorial, um die Webentwicklung mithilfe eines Flask GitHub-Repositorys zu verstehen. Bevor Sie fortfahren, klonen Sie bitte das Projekt von Github, um die besprochenen Codebeispiele einfach nachverfolgen zu können.
Voraussetzungen
Abgesehen von den in diesem Abschnitt genannten Überschriften empfehlen wir die Erstellung eines Github-Kontos. Fahren wir mit den unten aufgeführten Schritten in den Voraussetzungen fort.
Schritt 1: Installieren Sie Python
Überprüfen Sie, ob Sie Python 3 installiert haben oder nicht. Wenn nicht, laden Sie Python 3 von herunter Hier und installieren Sie es gemäß Ihrem Betriebssystem.
Schritt 2: Erstellen Sie eine virtuelle Python-Umgebung
Erstellen Sie eine virtuelle Umgebung mit dem folgenden Befehl.
python3 -m venv venv
Verwenden Sie den folgenden Befehl, um die virtuelle Python-Umgebung zu aktivieren.
source venv/bin/activate
Im Folgenden finden Sie ein Beispiel für die Aktivierung und Deaktivierung der virtuellen Umgebung.
Alle nachfolgenden Befehle in diesem Lernprogramm sollten in einer aktivierten virtuellen Umgebung ausgeführt werden. Installieren Sie das Radpaket, damit wir Räder in der virtuellen Umgebung bauen können.
pip install wheel
Schritt 3: Herunterladen und Installieren der Flasche
Wir müssen die Flask-Download-Schritte ausführen und Flask mithilfe der unten genannten Schritte installieren.
Installieren Sie nun Flask.
pip install flask
Einige von uns arbeiten gerne mit den neuesten Änderungen im Quellcode zusammen. Wir können den unten angegebenen Befehl verwenden, um die neuesten Änderungen an den Quellen von Flask zu installieren.
Erstellen Sie ein temporäres Verzeichnis.
mkdir tmp
Installieren Sie nun Flask aus dem Github-Repository. Sie müssen mit dem Internet verbunden bleiben, damit der folgende Befehl funktioniert.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Überprüfen Sie die Konsolenausgänge, um die erfolgreiche Installation zu überprüfen. Überprüfen Sie nun, ob wir auf Flask-Befehle zugreifen können.
flask --help
Möglicherweise werden einige Ausnahmen bezüglich des Fehlens einer Flask-Anwendung angezeigt. Vernachlässigen Sie diese jedoch, da wir keine Flask-App erstellt haben. Unsere App ist eine Instanz von Flask, einem Wrapper für das Werkzeug-Webframework und die Jinja-Template-Engine.
Werkzeug
Werkzeug ist ein WSGI-Toolkit. WSGI ist nur eine Aufrufkonvention für Webserver zum Weiterleiten Webanfragen zu Webanwendungen, die in der Programmiersprache Python geschrieben sind.
Jinja
Templating ist eine wesentliche Fähigkeit von Webentwicklern. Jinja ist eine voll funktionsfähige und beliebte Template-Engine für Python. Es ist eine ausdrucksstarke Sprache und bietet Vorlagenautoren eine Reihe robuster Tools.
Schritt 4: Installieren Sie MongoDB
Befolgen Sie die unten aufgeführten Schritte, um MongoDB zu installieren. Wir haben die Schritte zur Installation unter einem Debian-basierten Linux beschrieben. Wenn Sie ein anderes Betriebssystem verwenden, greifen Sie auf das zu Verknüpfung und gemäß dem vorgesehenen Betriebssystem installieren.
Installieren Sie gnupg zum Importieren des öffentlichen MongoDB-GPG-Schlüssels.
sudo apt-get install gnupg
Importieren Sie nun den Schlüssel mit dem folgenden Befehl.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Erstellen Sie die Quelllistendatei gemäß Ihrer Linux-Distribution. Wir haben die Liste der Quellen gemäß Debian hinzugefügt.
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
Führen Sie den Befehl update aus
sudo apt-get update
Installieren Sie nun MongoDB mit dem folgenden Befehl.
sudo apt-get install -y mongodb-org
Starten Sie MongoDB nach erfolgreicher Installation mit dem folgenden Befehl.
sudo systemctl start mongod
Überprüfen Sie den Status von MongoDB mit dem folgenden Befehl.
sudo systemctl status mongod
Stellen Sie nun sicher, dass mongod beim Neustart des Systems automatisch startet, indem Sie den unten gezeigten Befehl eingeben.
sudo systemctl enable mongod
Überprüfen Sie nun, ob Sie mit dem Mongo-Client eine Verbindung zum MongoDB-Server herstellen können.
mongo
Versuchen Sie in der Mongo-Shell, die Hilfe zu verwenden und die Befehle dbs anzuzeigen.
Orakel SQL-Fragen Interview Fragen und Antworten für erfahrene PDF
Erstellen Sie eine Kolben-App
Verwenden Sie den folgenden Befehl, um flask-appbuilder und mongoengine zu installieren.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Erstellen Sie eine Skelett-App mit den Werten, die im folgenden Codeausschnitt als Kommentare angezeigt werden.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Wir werden die Ausgabe ähnlich der unten angegebenen sehen.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) [SQLAlchemy]: MongoEngine Downloaded the skeleton app, good coding!
Schauen Sie sich das Layout des Projekts und der App an. Wir haben die Ausgabe des Befehls tree unten gezeigt.
Werfen wir einen Blick auf die Flask-Konfigurationsdatei. Dies ist eine Standardkonfiguration, die als Ergebnis des letzten Befehls generiert wurde. Kommentar Cyborg Thema, wie unten gezeigt.
# 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
Verwenden Sie zum Ausführen der Skeleton-App den unten angegebenen Befehl auf dem Terminal.
flask run
Flasche Hallo Welt
Um Ihr erstes Programm in der flaskTutorialApp zu erstellen, öffnen Sie die Datei views.py im App-Verzeichnis und fügen Sie den folgenden Code hinzu. Suchen Sie nach Importanweisungen in der Datei. Fügen Sie diese Anweisungen hinzu, falls sie noch nicht vorhanden sind.
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())
Speichern Sie die Datei, nachdem Sie den obigen Quellcode hinzugefügt haben. Wechseln Sie in das Stammverzeichnis des Projekts und verwenden Sie den folgenden Befehl, um den Entwicklungsserver des Flask auszuführen.
flask run
Navigieren Sie nun zu http: // localhost: 5000 / hello /, um die Ausgabe im Browser anzuzeigen.
Debuggen
Derzeit wird der Entwicklungsserver nicht im Debug-Modus ausgeführt. Ohne den Debugging-Modus ist es schwierig, die Fehler im Quellcode der Flask-Anwendung zu finden.
Der Debug-Modus in Flask führt zu folgenden Ergebnissen:
- Der Debug-Modus aktiviert das automatische Nachladen. Dies bedeutet, dass wir den Entwicklungsserver nicht neu starten müssen, nachdem wir Änderungen im Quellcode der Anwendung vorgenommen haben.
- Der Debug-Modus aktiviert den Python-Debugger. Wir können die Werte von Variablen während der Ausnahme überprüfen.
- Der Debug-Modus aktiviert das Debuggen von Flask-Anwendungen. Wir können die Werte verschiedener Variablen in Debugging-Sitzungen überprüfen.
Stoppen Sie den Entwicklungsserver, wenn er bereits ausgeführt wird. Sie können STRG + C oder Tastaturinterrupt verwenden, um dasselbe zu tun.
Verwenden Sie den folgenden Code, um den Debug-Modus zu aktivieren und den Entwicklungsserver vorübergehend auszuführen.
FLASK_ENV=development flask run
Durchsuchen Sie die Konsole nach der Debugger-PIN und notieren Sie diese.
Ändern wir nun die oben geschriebene HelloWorld-Ansicht mit den folgenden Zeilen des Code-Snippets. Beachten Sie, dass wir eine benutzerdefinierte Ausnahme eingeführt haben.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Navigieren Sie zu http: // localhost: 5000 / hello /, und Sie werden sehen, dass die Anwendung eine Ausnahme ausgelöst hat. Der Browser zeigt die Stapelverfolgung wie unten gezeigt an.
Schauen Sie sich außerdem die Konsole an, auf der der Entwicklungsserver ausgeführt wird. Sie werden feststellen, dass diesmal die Änderungen in views.py automatisch erkannt werden und der Debug-Server von selbst neu gestartet wird. Jetzt müssen wir es nicht manuell neu starten.
Die Konsole hat Linien, wie unten gezeigt. Wir müssen die Debug-PIN für später notieren.
* 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
Überprüfen Sie nun die Stapelverfolgung im Browser und gehen Sie zur letzten Zeile. Klicken Sie darauf, um die Ansicht zu erweitern, und klicken Sie auf das CLI-Symbol, um die Shell im interaktiven Modus zu öffnen.
Sobald Sie es öffnen, sehen Sie, dass der Browser eine Aufforderung zur Debug-PIN anzeigt. Geben Sie die Debug-PIN ein und klicken Sie auf OK.
Sobald wir nach der Eingabe der Debug-PIN fortfahren, können wir auf die interaktive Shell zugreifen.
Wir greifen über den Browser auf die Shell zu und können die Werte von Variablen untersuchen, um die Ursache der Ausnahme zu finden und den Fehler besser zu behandeln. Bitte schauen Sie sich eines der im Bild unten gezeigten Beispiele an.
Ändern Sie nun den Code in view.py wie unten gezeigt. Beachten Sie, dass wir die Zeile kommentiert haben, in der die Ausnahme ausgelöst wurde.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Testen der Kolbenanwendung
Schreiben wir nun unseren ersten Test für die von uns entwickelte Flask-Anwendung. Installieren Sie zuerst den PyTest. PyTest ist ein Testframework. Es hilft uns, besseren Code zu schreiben.
Nur weil wir während der Entwicklung unserer Anwendungen Komponententests schreiben können, ist es außerdem möglich, dem TDD-Ansatz zu folgen. TDD steht für Test-Driven Development. In unseren nachfolgenden Tutorials dieser Reihe werden wir immer zuerst Tests schreiben und unsere Ansichten oder Modelle entwickeln.
Installieren Sie PyTest
pip install pytest
Erstellen Sie nun ein Verzeichnis mit dem Namen tests im App-Verzeichnis und erstellen Sie in diesem Verzeichnis eine Datei mit dem Namen test_hello.py. Schreiben wir unseren ersten Komponententest, um unsere Ansicht zu testen.
Kopieren Sie das folgende Codefragment und fügen Sie es in test_hello.py ein.
#!/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
Verwenden Sie den folgenden Befehl pytest, um die Tests auszuführen. PyTest sammelt die Tests automatisch und zeigt die Ergebnisse in der Standardausgabe an.
Erstellen Sie einen GitHub-Workflow
Wir verwenden Git-Aktionen, um einen CI / CD-Workflow für unsere Beispielanwendung zu erstellen. Befolgen Sie die unten aufgeführten Schritte für Ihr Projekt.
Schritt 1: Navigieren Sie zur Repository-Seite auf GitHub. Klicken Sie auf Git Actions.
Schritt 2: Scrollen Sie auf der Seite nach unten und suchen Sie eine vorhandene Workflow-Vorlage für ein Python-Paket.
Schritt 3: Richten Sie den Python-Paket-Workflow ein.
Schritt 4: Sobald die Workflow-Konfiguration von python-package.yml geöffnet ist, aktualisieren Sie sie basierend auf den angegebenen zusätzlichen yaml-Tag-Werten.
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
Wir möchten unsere Flask-Anwendung auf der neuesten Ubuntu Linux-Distribution testen. Zusätzlich zum Betriebssystem möchten wir unsere Tests nur mit Python 3.7 und Python 3.8 ausführen.
Schritt 5: Übernehmen Sie die Datei python-package.yml mit den aktualisierten Werten.
Schritt 6: Das Commit auf der vorherigen Seite führt uns zu den GitActions-Jobs.
Schritt 7: [Optional]
Auf der Seite 'Github-Jobs' für die Beispiel-Tutorial-App können wir ein Badge erstellen und es in der Datei 'README.md' platzieren, um den Build-Status anzuzeigen.
Immer wenn die Änderungen in den Hauptzweig übernommen werden, wird Git Workflow, wie in python-package.yml geschrieben, befolgt und auf Git Actions ausgeführt.
Fazit
In diesem Tutorial haben wir alle Grundkonzepte von den Voraussetzungen bis zum Einrichten des CI / CD-Workflows für eine Webanwendung behandelt, die mit Flask - einem Python-basierten Webentwicklungsframework entwickelt wurde.
Dieses Tutorial behandelt alle notwendigen Schritte wie das Installieren von Python, das Herunterladen und Installieren von Flask, das Arbeiten mit Flask-Appbuilder, das Testen mit PyTest usw., um mit der Webentwicklung mit Python zu beginnen. Die Webentwicklungs-Community vergleicht Flask normalerweise mit einem anderen beliebten Python-Webentwicklungs-Framework namens Django.
Wir werden diese Unterschiede erklären und diese Frameworks auch in einem der Tutorials dieser Reihe vergleichen.
Literatur-Empfehlungen
- Django Vs Flask Vs Node: Welches Framework soll ausgewählt werden?
- Flask API Tutorial mit Beispiel | Flasche mit APIs erweitern
- Flask App und Flask Project Layout mit Blueprint & Bootstrap
- Handhabung der Flaschendatenbank - Verwendung der Flasche mit einer Datenbank
- Flask Design Patterns und Best Practices für Webanwendungen
- Flaschenvorlage, Formular, Ansicht und Umleitung mit Beispielen
- Top 31 beliebte Python Flask Interview Fragen mit Antworten
- Python-Tutorial für Anfänger (KOSTENLOSES Python-Training zum Anfassen)