Desplegar una aplicación Flask

FlaskFlaskBeginner
Practicar Ahora

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

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderemos cómo desplegar una aplicación Flask en un servidor. Crearemos un archivo de distribución para nuestra aplicación e instalaremos en el servidor. El laboratorio asume que tienes un conocimiento básico de Flask, los entornos virtuales de Python y la línea de comandos.

Nota: Debes crear el archivo de código por ti mismo y ejecutarlo en el entorno. Puedes previsualizar el estado del servicio Flask en el Web 5000.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL flask(("Flask")) -.-> flask/DevelopmentToolsGroup(["Development Tools"]) flask(("Flask")) -.-> flask/DataHandlingGroup(["Data Handling"]) flask(("Flask")) -.-> flask/CoreConceptsGroup(["Core Concepts"]) 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{{"Desplegar una aplicación Flask"}} flask/response_objects -.-> lab-136343{{"Desplegar una aplicación Flask"}} flask/application_object -.-> lab-136343{{"Desplegar una aplicación Flask"}} flask/sessions -.-> lab-136343{{"Desplegar una aplicación Flask"}} flask/json_support -.-> lab-136343{{"Desplegar una aplicación Flask"}} flask/useful_internals -.-> lab-136343{{"Desplegar una aplicación Flask"}} flask/command_line_interface -.-> lab-136343{{"Desplegar una aplicación Flask"}} end

Construir la aplicación

Primero, necesitamos crear un archivo wheel para nuestra aplicación. Para esto, usaremos la herramienta build. Instala la herramienta build con pip si aún no la has instalado:

## Instala la herramienta build
pip install build

Ahora, usa la herramienta build para crear el archivo wheel:

## Construye el archivo wheel
python -m build --wheel

El archivo wheel debería estar en el directorio dist con un nombre como flaskr-1.0.0-py3-none-any.whl.

Instalar la aplicación en el servidor

Copia el archivo wheel en tu servidor. Una vez que esté allí, configura un nuevo entorno virtual de Python e instala el archivo wheel con pip:

## Instala el archivo wheel
pip install flaskr-1.0.0-py3-none-any.whl

Como este es un nuevo entorno, necesitas inicializar la base de datos nuevamente:

## Inicializa la base de datos
flask --app flaskr init-db

Configurar la clave secreta

En un entorno de producción, debes cambiar la clave secreta a un valor aleatorio. Para generar una clave secreta aleatoria, ejecuta el siguiente comando:

## Genera una clave secreta aleatoria
python -c 'import secrets; print(secrets.token_hex())'

Crea un archivo config.py en la carpeta de instancia y establece SECRET_KEY con el valor generado.

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

SECRET_KEY = 'tu_clave_secreta_generada'

Ejecutar la aplicación con un servidor de producción

Para un entorno de producción, deberías usar un servidor WSGI en lugar del servidor de desarrollo integrado. Usaremos Waitress como nuestro servidor WSGI.

Primero, instala Waitress:

## Instala Waitress
pip install waitress

Ahora, indica a Waitress que sirva tu aplicación:

## Ejecuta la aplicación con Waitress
waitress-serve --call 'flaskr:create_app'

Resumen

En este laboratorio, aprendimos cómo desplegar una aplicación Flask en un servidor de producción. Construimos nuestra aplicación en un archivo wheel, la instalamos en el servidor, configuramos la clave secreta y ejecutamos la aplicación con un servidor WSGI de producción.