Déployer une application Flask

FlaskFlaskBeginner
Pratiquer maintenant

This tutorial is from open-source community. Access the source code

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, nous allons apprendre à déployer une application Flask sur un serveur. Nous allons créer un fichier de distribution pour notre application et l'installer sur le serveur. Le laboratoire suppose que vous avez une compréhension de base de Flask, des environnements virtuels de Python et de la ligne de commande.

Note : Vous devez créer le fichier de code vous-même et l'exécuter dans l'environnement. Vous pouvez prévisualiser l'état du service Flask sur Web 5000.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL flask(("Flask")) -.-> flask/DataHandlingGroup(["Data Handling"]) flask(("Flask")) -.-> flask/CoreConceptsGroup(["Core Concepts"]) flask(("Flask")) -.-> flask/DevelopmentToolsGroup(["Development Tools"]) flask/DataHandlingGroup -.-> flask/incoming_request_data("Incoming Request Data") flask/DataHandlingGroup -.-> flask/response_objects("Response Objects") flask/CoreConceptsGroup -.-> flask/application_object("Application Object") flask/CoreConceptsGroup -.-> flask/sessions("Sessions") flask/CoreConceptsGroup -.-> flask/json_support("JSON Support") flask/CoreConceptsGroup -.-> flask/useful_internals("Useful Internals") flask/DevelopmentToolsGroup -.-> flask/command_line_interface("Command Line Interface") subgraph Lab Skills flask/incoming_request_data -.-> lab-136343{{"Déployer une application Flask"}} flask/response_objects -.-> lab-136343{{"Déployer une application Flask"}} flask/application_object -.-> lab-136343{{"Déployer une application Flask"}} flask/sessions -.-> lab-136343{{"Déployer une application Flask"}} flask/json_support -.-> lab-136343{{"Déployer une application Flask"}} flask/useful_internals -.-> lab-136343{{"Déployer une application Flask"}} flask/command_line_interface -.-> lab-136343{{"Déployer une application Flask"}} end

Build the Application

Tout d'abord, nous devons créer un fichier wheel pour notre application. Nous allons utiliser l'outil build à cet effet. Installez l'outil build avec pip si vous ne l'avez pas déjà fait :

## Install the build tool
pip install build

Maintenant, utilisez l'outil build pour créer le fichier wheel :

## Build the wheel file
python -m build --wheel

Le fichier wheel devrait se trouver dans le répertoire dist avec un nom comme flaskr-1.0.0-py3-none-any.whl.

Install the Application on the Server

Copiez le fichier wheel sur votre serveur. Une fois que vous y êtes, configurez un nouvel environnement virtuel Python et installez le fichier wheel avec pip :

## Install the wheel file
pip install flaskr-1.0.0-py3-none-any.whl

Puisque c'est un nouvel environnement, vous devez initialiser la base de données à nouveau :

## Initialize the database
flask --app flaskr init-db

Configure the Secret Key

Dans un environnement de production, vous devriez changer la clé secrète en une valeur aléatoire. Pour générer une clé secrète aléatoire, exécutez la commande suivante :

## Generate a random secret key
python -c 'import secrets; print(secrets.token_hex())'

Créez un fichier config.py dans le dossier instance et définissez SECRET_KEY sur la valeur générée.

#.venv/var/flaskr-instance/config.py

SECRET_KEY = 'your_generated_secret_key'

Run the Application with a Production Server

Pour un environnement de production, vous devriez utiliser un serveur WSGI au lieu du serveur de développement intégré. Nous allons utiliser Waitress comme notre serveur WSGI.

Tout d'abord, installez Waitress :

## Install Waitress
pip install waitress

Maintenant, indiquez à Waitress de servir votre application :

## Run the application with Waitress
waitress-serve --call 'flaskr:create_app'

Summary

Dans ce laboratoire, nous avons appris à déployer une application Flask sur un serveur de production. Nous avons empaqueté notre application en un fichier wheel, l'installé sur le serveur, configuré la clé secrète et exécuté l'application avec un serveur WSGI de production.