python flask tutorial introduction flask
Ce didacticiel d'introduction Python Flask explique ce qu'est Flask, l'installation de Python, Virtualenv, l'exemple Flask Hello World avec une section sur les exemples de code, le débogage et les tests:
Le développement de sites Web est plus un art qu'une compétence. Il faut de la patience et de la diligence, ainsi que de la persévérance, du courage et du dévouement pour créer ce qui est nécessaire pour qu’elle soit un véritable succès. De nos jours, il est essentiel pour les apprenants de se mettre au plus vite.
Nous avons créé ce didacticiel Python Flask pour que les étudiants se mettent à jour et implémentent une programmation Web simple et complexe à l'aide de Python 3.
Ce didacticiel Python Flask ressemble plus à un didacticiel flask pour débutant, qui couvrira l'installation de Python, Virtualenv et d'autres packages essentiels. Dans cette série de didacticiels, nous installerons également Flask avec les autres plugins Flask nécessaires. Nous avons également inclus une section sur le débogage de code, les tests et l'intégration continue à l'aide des actions Git.
Ce que vous apprendrez:
Liste des didacticiels de cette série Flask
Tutoriel n ° 1: Tutoriel Python Flask - Introduction à Flask pour les débutants
Tutoriel n ° 2: Modèle de flacon, formulaire, vue et redirection avec des exemples
Tutoriel n ° 3: Gestion de la base de données Flask - Comment utiliser Flask avec une base de données
Tutoriel n ° 4: Mise en page de l'application Flask et du projet Flask avec Blueprint et Bootstrap
Tutoriel n ° 5: Modèles de conception de flacons et meilleures pratiques pour les applications Web
Tutoriel n ° 6: Tutoriel API Flask avec exemple | Extension de Flask avec des API
Tutoriel n ° 7: Django Vs Flask Vs Node: quel framework sélectionner
Tutoriel n ° 8: Top 31 des questions d'entrevue Python Flask populaires avec réponses
Qu'est-ce que Flask
Flask est un framework de développement Web. C'est un framework avec un serveur de développement intégré et un débogueur.
convertisseur gratuit youtube en mp4 pour mac
Le framework Flask en lui-même est différent des autres archétypes car il permet aux développeurs Web d'être flexibles et de s'adapter confortablement aux changements fréquemment publiés dans la communauté du développement logiciel.
À quoi sert le flacon
Nous utilisons le framework Flask pour développer des applications Web en langage de programmation Python. Il s'intègre à d'autres services et API tiers pour apporter richesse et sens à l'application en cours de développement. Les concepts de base de Flask sont simples et son encombrement est minime.
Commençons par ce didacticiel Python Flask pour comprendre le développement Web à l'aide d'un référentiel Flask GitHub. Cependant, avant de continuer, veuillez cloner le projet à partir de Github pour un suivi facile des exemples de code discutés.
Conditions préalables
Outre les en-têtes mentionnés dans cette section, nous vous recommandons de créer un compte Github. Continuons avec les étapes mentionnées ci-dessous dans les conditions préalables.
Étape 1: Installez Python
Vérifiez si vous avez installé Python 3 ou non. Sinon, téléchargez Python 3 depuis ici et installez-le selon votre système d'exploitation.
Étape 2: créer un environnement virtuel Python
Créez un environnement virtuel à l'aide de la commande ci-dessous.
python3 -m venv venv
Utilisez la commande ci-dessous pour activer l'environnement virtuel Python.
source venv/bin/activate
Nous avons donné un exemple d'activation et de désactivation de l'environnement virtuel ci-dessous.
Toutes les commandes suivantes de ce didacticiel doivent s'exécuter dans un environnement virtuel activé. Installez le paquet de roues afin que nous puissions construire des roues dans l'environnement virtuel.
pip install wheel
Étape 3: Téléchargement et installation du flacon
Nous devons effectuer les étapes de téléchargement de Flask et installer Flask en suivant les étapes ci-dessous.
Maintenant, installez Flask.
pip install flask
Certains d'entre nous aiment travailler avec les dernières modifications du code source. Nous pouvons utiliser la commande ci-dessous pour installer avec les dernières modifications apportées aux sources de Flask.
Créez un répertoire temporaire.
mkdir tmp
Installez maintenant Flask depuis le référentiel Github. Vous devez rester connecté à Internet pour que la commande ci-dessous fonctionne.
pip3 install -e git+git@github.com:pallets/flask.git#egg=flask
Regardez les sorties de la console pour vérifier l'installation réussie. Maintenant, vérifiez si nous pouvons accéder aux commandes Flask.
flask --help
Vous pouvez voir des exceptions concernant l'absence d'application Flask. Cependant, négligez-les car nous n'avons créé aucune application Flask. Notre application est une instance de Flask, qui est un wrapper sur le framework Web Werkzeug et le moteur de création de modèles Jinja.
Outil
Werkzeug est une boîte à outils WSGI. WSGI n'est qu'une convention d'appel pour les serveurs Web à transférer demandes web aux applications Web écrites en langage de programmation Python.
Jinja
La création de modèles est une compétence essentielle des développeurs Web. Jinja est un moteur de création de modèles complet et populaire pour Python. C'est un langage assez expressif et fournit un ensemble robuste d'outils aux auteurs de modèles.
Étape 4: Installez MongoDB
Suivez les étapes ci-dessous pour installer MongoDB. Nous avons décrit les étapes pour l'installer dans un Linux basé sur Debian. Si vous utilisez un autre système d'exploitation, accédez au lien et installez selon le système d'exploitation prévu.
Installez gnupg pour importer la clé GPG publique MongoDB.
sudo apt-get install gnupg
Importez maintenant la clé à l'aide de la commande ci-dessous.
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
Créez le fichier de liste des sources selon votre distribution Linux. Nous avons ajouté la liste des sources selon 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
Exécuter la commande de mise à jour
sudo apt-get update
Installez maintenant MongoDB, en utilisant la commande ci-dessous.
sudo apt-get install -y mongodb-org
Une fois l'installation réussie, démarrez MongoDB à l'aide de la commande ci-dessous.
sudo systemctl start mongod
Vérifiez l'état de MongoDB à l'aide de la commande ci-dessous.
sudo systemctl status mongod
Assurez-vous maintenant que mongod démarre automatiquement au redémarrage du système en exécutant la commande ci-dessous.
sudo systemctl enable mongod
Vérifiez maintenant si vous pouvez vous connecter au serveur MongoDB à l'aide du client mongo.
mongo
Dans le shell mongo, essayez d'utiliser les commandes help et show dbs.
Créer une application Flask
Utilisez la commande ci-dessous pour installer flask-appbuilder et mongoengine.
pip install flask-appbuilder pip install mongoengine pip install flask_mongoengine
Créez une application squelette avec les valeurs affichées sous forme de commentaires dans l'extrait de code ci-dessous.
flask fab create-app # Give the following values in the command line questionnaire # Application Name: flaskTutorialApp # EngineType : MongoEngine
Nous verrons la sortie similaire à celle donnée ci-dessous.
Your new app name: exampleApp Your engine type, SQLAlchemy or MongoEngine (SQLAlchemy, MongoEngine) (SQLAlchemy): MongoEngine Downloaded the skeleton app, good coding!
Jetez un œil à la mise en page du projet et de l'application. Nous avons montré la sortie de la commande tree ci-dessous.
Jetons un œil au fichier de configuration Flask. C'est une configuration par défaut générée à la suite de la dernière commande. Décommenter Cyborg thème, comme indiqué ci-dessous.
# 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
Pour exécuter l'application squelette, utilisez la commande ci-dessous sur le terminal.
flask run
Flacon Hello World
Pour créer votre premier programme dans flaskTutorialApp, ouvrez le fichier views.py sous le répertoire de l'application et ajoutez le code suivant. Recherchez les instructions d'importation fournies dans le fichier. Ajoutez ces instructions si elles ne sont pas déjà présentes.
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())
Enregistrez le fichier après avoir ajouté le code source ci-dessus. Accédez au répertoire racine du projet et utilisez la commande ci-dessous pour exécuter le serveur de développement de Flask.
flask run
Accédez maintenant à http: // localhost: 5000 / hello / pour voir la sortie dans le navigateur.
Débogage
Actuellement, le serveur de développement ne fonctionne pas en mode débogage. Sans mode de débogage, il est difficile de trouver les erreurs dans le code source de l'application Flask.
Le mode de débogage dans Flask donne les résultats suivants:
- Le mode de débogage active le rechargement automatique. Cela signifie que nous n'avons pas besoin de redémarrer le serveur de développement après avoir apporté des modifications au code source de l'application.
- Le mode débogage active le débogueur Python. Nous pouvons inspecter les valeurs des variables lors de l'exception.
- Le mode de débogage active le débogage des applications Flask. Nous pouvons vérifier les valeurs de diverses variables dans les sessions de débogage.
Arrêtez le serveur de développement s'il est déjà en cours d'exécution. Vous pouvez utiliser CTRL + C ou l'interruption clavier pour faire de même.
Utilisez le code suivant pour activer le mode débogage et exécuter temporairement le serveur de développement.
FLASK_ENV=development flask run
Recherchez le code PIN du débogueur dans la console et notez-le.
Modifions maintenant la vue HelloWorld écrite ci-dessus avec les lignes suivantes de l'extrait de code. Notez que nous avons introduit une exception personnalisée.
@expose('/') def hello(self): raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Accédez à http: // localhost: 5000 / hello /, et vous verrez que l'application a déclenché une exception. Le navigateur affiche la trace de la pile, comme indiqué ci-dessous.

En outre, regardez la console sur laquelle le serveur de développement est exécuté. Vous constaterez que cette fois, les modifications apportées à views.py sont automatiquement détectées et le serveur de débogage redémarre tout seul. Maintenant, nous n'avons pas besoin de le redémarrer manuellement.
La console aura des lignes, comme indiqué ci-dessous. Nous devons noter le code PIN de débogage pour plus tard.
* 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
Vérifiez maintenant la trace de la pile dans le navigateur et passez à la dernière ligne. Cliquez dessus pour agrandir sa vue et cliquez sur l'icône CLI pour ouvrir le shell en mode interactif.

Une fois que vous l'ouvrez, vous verrez que le navigateur affichera une invite pour le code PIN de débogage. Donnez le code PIN de débogage et cliquez sur OK.

Une fois que nous avons avancé après avoir donné le code PIN de débogage, nous pouvons accéder au shell interactif.
Nous accédons au shell depuis le navigateur et pouvons inspecter les valeurs des variables pour trouver la cause de l'exception et gérer l'erreur d'une meilleure manière. Veuillez regarder l'un des exemples montrés dans l'image ci-dessous.

Modifiez maintenant le code dans view.py, comme indiqué ci-dessous. Notez que nous avons commenté la ligne qui a soulevé l'exception.
@expose('/') def hello(self): # raise Exception('A custom exception to learn DEBUG Mode') return 'Hello, World! from Software Testing Help'
Test de l'application Flask
Écrivons maintenant notre premier test pour l'application Flask que nous développons. Tout d'abord, installez PyTest. PyTest est un framework de test. Cela nous aide à écrire un meilleur code.
De plus, simplement parce que nous pouvons écrire des tests unitaires tout en développant nos applications, il est possible de suivre l'approche TDD. TDD signifie Test-Driven Development. Dans nos tutoriels ultérieurs de cette série, nous écrirons toujours les tests en premier et développerons nos vues ou modèles.
Installez PyTest
pip install pytest
Créez maintenant un répertoire appelé tests dans le répertoire de l'application et dans celui-ci, créez un fichier appelé test_hello.py. Écrivons notre premier test unitaire pour tester notre vue.
Copiez l'extrait de code suivant et collez-le dans test_hello.py.
Référence indéfinie c ++ à la fonction dans le fichier d'en-tête
#!/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
Utilisez la commande pytest ci-dessous pour exécuter les tests. PyTest collecte automatiquement les tests et affiche les résultats sur la sortie standard.

Créer un workflow GitHub
Nous utilisons Git Actions pour créer un workflow CI / CD pour notre exemple d'application. Suivez les étapes ci-dessous pour votre projet.
Étape 1: accédez à la page du référentiel sur GitHub. Cliquez sur Actions Git.

Étape 2: Faites défiler la page vers le bas et recherchez un modèle de workflow existant pour un package Python.

Étape 3: configuration du flux de travail du package Python.

Étape 4: Une fois la configuration du flux de travail python-package.yml ouverte, mettez-la à jour en fonction des valeurs de balises supplémentaires yaml données.
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
Nous souhaitons tester notre application Flask sur la dernière distribution Ubuntu Linux. En plus du système d'exploitation, nous souhaitons exécuter nos tests uniquement en utilisant Python 3.7 et Python 3.8.
Étape 5: Validez le python-package.yml avec les valeurs mises à jour.

Étape 6: Le commit de la page précédente nous amène aux travaux GitActions.

Étape 7: (Optionnel)
Sur la page Github Jobs de l'exemple d'application du didacticiel, nous pouvons créer un badge et le placer dans le fichier README.md pour afficher l'état de la construction.
Désormais, chaque fois que les modifications sont validées dans la branche principale, Git Workflow, tel qu'écrit dans python-package.yml, sera suivi et exécuté sur Git Actions.
Conclusion
Dans ce didacticiel, nous avons couvert tous les concepts de base, des prérequis à la configuration du flux de travail CI / CD pour une application Web développée à l'aide de Flask - Un cadre de développement Web basé sur Python.
Ce tutoriel couvre toutes les étapes nécessaires telles que l'installation de Python, le téléchargement et l'installation de Flask, l'utilisation de Flask-Appbuilder, les tests avec PyTest, etc. pour commencer le développement Web à l'aide de Python. La communauté de développement Web compare généralement Flask avec un autre framework de développement Web Python populaire appelé Django.
Nous expliquerons ces différences et comparerons également ces frameworks dans l'un des tutoriels de cette série.
lecture recommandée
- Django Vs Flask Vs Node: quel framework sélectionner
- Tutoriel API Flask avec exemple | Extension de Flask avec des API
- Mise en page de l'application Flask et du projet Flask avec Blueprint et Bootstrap
- Gestion de la base de données Flask - Comment utiliser Flask avec une base de données
- Modèles de conception de flacons et meilleures pratiques pour les applications Web
- Modèle de flacon, formulaire, vue et redirection avec des exemples
- Top 31 des questions d'entrevue Python Flask populaires avec réponses
- Tutoriel Python pour les débutants (formation pratique gratuite sur Python)