Estructura del proyecto del matraz

Salman Mehmood 15 febrero 2024
Estructura del proyecto del matraz

Aprenderemos, con esta explicación, cómo estructurar una gran aplicación Flask con la ayuda del enfoque Blueprint en Flask y Python.

Estructurar una aplicación Big Flask con la ayuda del enfoque Blueprint en Flask y Python

Sabemos que la documentación de Flask ha escrito sobre el plano de Flask. Aún así, a veces es difícil para los principiantes entender cómo estructurar la aplicación Flask simplemente leyendo la documentación de Flask.

Así que nos gustaría desglosarlo usando palabras simples y explicar cómo estructurar la aplicación Flask usando la clase Blueprint de Flask.

Para comenzar a trabajar, crearemos un entorno virtual e instalaremos un Flask usando los siguientes comandos. Después de crear el entorno virtual, activaremos este e instalaremos el paquete Flask.

python -m venv our_venv
.\our_venv\Scripts\Activate.ps1
pip install flask

El blueprint nos permite crear diferentes instancias de la aplicación Flask y reutilizar parte del código en los diferentes paquetes para que no siempre tengamos que escribirlos desde cero.

Primero, crearemos un directorio llamado app; dentro del directorio raíz, crearemos un archivo llamado run.py. Dentro del directorio de la aplicación, haremos que este directorio de la aplicación haga un paquete en Python y cree el archivo __init__.py.

Ahora seguiremos adelante, y dentro del archivo __init__.py, importaremos Flask y definiremos la función create_app() que creará la aplicación. Ahora crearemos la instancia de Flask y la almacenaremos en la variable app como esta app=Flask(__name__) y luego devolveremos este objeto.

Ahora tenemos que importar la función create_app desde la aplicación, y nos gustaría ejecutar la aplicación cuando ejecutemos este archivo run.py. Para ello, utilizaremos la siguiente sintaxis.

Al crear una aplicación, crearemos diferentes componentes que trabajarán juntos para crear la aplicación; podemos hacer eso dentro del directorio aplicación. Ahora dentro del directorio app, creamos un directorio llamado main, y dentro de este directorio main, crearemos el archivo __init__.py, que lo convertirá en un paquete.

Ahora crearemos un archivo routes.py, y dentro de este archivo, importaremos la clase Blueprint del módulo Flask y le daremos a nuestro blueprint un nombre llamado main, y le pasaremos __name__.

Básicamente, así es como podemos crear la aplicación Flask simple, como instanciamos la aplicación Flask usando la clase Flask.

main = Blueprint("main", __name__)

Ahora crearemos una ruta para la página de enrutamiento, definiremos la función Main_Page() y luego devolveremos la página.

Ahora dentro del archivo __init__.py que está dentro del directorio app, necesitamos registrar el blueprint, por lo que importaremos main desde app.main.routes donde hemos creado la instancia de Blueprint. Luego, a continuación, registraremos el blueprint, es decir, main usando app.register_blueprint().

De la misma forma, si añadimos las plantillas en la aplicación Flask normal, podríamos crear un directorio llamado plantillas, y luego podemos generar archivos HTML dentro de este directorio. También podemos controlar la configuración de la aplicación Flask, que es muy sencilla.

Dentro del directorio root, podemos crear un archivo config.py, y dentro de este archivo, podemos crear una clase llamada Config, que tendrá TESTING y luego DEBUG configurados en False.

También podemos crear aquí otra clase llamada Desarrollo, que heredaría de Config y sobrescribiría DEBUG a True. Definiremos una clase más llamada TESTING que también heredará de Config; tendrá la propiedad PRUEBA igual a True.

Puede tener muchas configuraciones, pero solo queremos simplificar esto para que pueda comprender cómo configurar la aplicación de planos usando configuraciones.

Ahora vamos a crear una variable llamada config que será un diccionario, y este diccionario tendrá las clases Desarrollo y PRUEBA como valor de esas claves.

class Config(object):
    TESTING = False
    DEBUG = False


class Development(Config):
    DEBUG = True


class TESTING(Config):
    TESTING = True


config = {"development": Development, "testing": TESTING}

Volveremos al interior del archivo __init__.py e importaremos el diccionario config desde el archivo Config. Tendremos que pasar app_config dentro de la función create_app() y pasar el desarrollo a este argumento.

Ahora necesitaremos pasar la aplicación Flask usando app.config.from_object(config[app_config](/es/howto/python/dotenv-python/)) y escribir este código dentro del bloque de funciones. Ahora instalaremos [el paquete dotenv] que es útil para configurar archivos y variables .env porque se pueden usar en toda la aplicación y cambiar fácilmente.

pip install python-dotenv

Ahora también crearemos un archivo .env, y dentro de este archivo configuraremos el entorno de Flask desde la producción hasta el desarrollo. Solo necesitamos escribir esto como el código FLASK_ENV=desarrollo y guardarlo.

Podemos crear tantos paquetes como queramos, así que ahora podemos entrar en el directorio de la aplicación y crear un paquete auth, y en lugar de este paquete, puede tener sus inicios de sesión y su cierre de sesión, y mucho más. También podemos crear una carpeta estática y mantener sus afirmaciones estáticas dentro de este directorio como en la aplicación Flask normal.

Ahora ejecutaremos este archivo run.py que creamos inicialmente. Podemos ver que el entorno se encuentra actualmente en modo de desarrollo en lugar de producción, y la aplicación funciona correctamente.

Estructura del Proyecto Flask - Salida 1

Este enfoque de Blueprint nos ayuda a estructurar la aplicación para hacerla mucho más ordenada y componer una aplicación más extensa.

El código del archivo run.py:

from app import create_app

if __name__ == "__main__":
    create_app().run(debug=True)

El código del archivo __init__.py:

from flask import Flask
from config import config


def create_app(app_config="development"):
    app = Flask(__name__)
    app.config.from_object(config[app_config])
    from app.main.routes import main

    app.register_blueprint(main)
    return app

El código del archivo routes.py:

from flask import Blueprint

main = Blueprint("main", __name__)


@main.route("/", methods=["GET"])
def Main_Page():
    return "Hi there!"

Ahora la estructura de nuestro proyecto Flask se ve así:

Estructura del Proyecto Flask - Salida 2

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn