En este tema, aprenderemos sobre la estructura básica de una aplicación Flask. Entender cómo organizar tu proyecto es crucial para mantener el código limpio, escalable y fácil de mantener. Vamos a desglosar los componentes principales y su propósito.

  1. Estructura Básica de un Proyecto Flask

Una aplicación Flask puede ser tan simple o compleja como necesites. Aquí hay un ejemplo de una estructura básica de proyecto:

my_flask_app/
│
├── app/
│   ├── __init__.py
│   ├── routes.py
│   ├── models.py
│   ├── templates/
│   │   └── index.html
│   └── static/
│       └── style.css
│
├── venv/
│   └── ... (archivos del entorno virtual)
│
├── config.py
├── run.py
└── requirements.txt

Descripción de los Archivos y Directorios

  • app/: Este directorio contiene la aplicación principal.

    • init.py: Este archivo inicializa la aplicación Flask y configura las extensiones.
    • routes.py: Aquí defines las rutas (endpoints) de tu aplicación.
    • models.py: Este archivo contiene las definiciones de los modelos de base de datos.
    • templates/: Este directorio contiene las plantillas HTML que se renderizan en las vistas.
    • static/: Aquí se almacenan los archivos estáticos como CSS, JavaScript e imágenes.
  • venv/: Este directorio contiene el entorno virtual de Python, que incluye todas las dependencias instaladas.

  • config.py: Archivo de configuración para la aplicación Flask.

  • run.py: El script principal para ejecutar la aplicación.

  • requirements.txt: Lista de dependencias del proyecto.

  1. Creando la Estructura Básica

Vamos a crear una estructura básica de proyecto paso a paso.

Paso 1: Crear el Directorio del Proyecto

Primero, crea un directorio para tu proyecto:

mkdir my_flask_app
cd my_flask_app

Paso 2: Configurar el Entorno Virtual

Crea y activa un entorno virtual:

python -m venv venv
source venv/bin/activate  # En Windows usa `venv\Scripts\activate`

Paso 3: Instalar Flask

Instala Flask usando pip:

pip install Flask

Paso 4: Crear la Estructura de Directorios y Archivos

Crea los directorios y archivos necesarios:

mkdir app
mkdir app/templates
mkdir app/static
touch app/__init__.py
touch app/routes.py
touch app/models.py
touch config.py
touch run.py

  1. Configurando los Archivos

app/init.py

Este archivo inicializa la aplicación Flask:

from flask import Flask

def create_app():
    app = Flask(__name__)
    
    # Configuración de la aplicación
    app.config.from_object('config.Config')
    
    # Registro de Blueprints
    from . import routes
    app.register_blueprint(routes.bp)
    
    return app

app/routes.py

Define las rutas de tu aplicación:

from flask import Blueprint, render_template

bp = Blueprint('main', __name__)

@bp.route('/')
def index():
    return render_template('index.html')

config.py

Archivo de configuración:

class Config:
    SECRET_KEY = 'supersecretkey'
    DEBUG = True

run.py

Script principal para ejecutar la aplicación:

from app import create_app

app = create_app()

if __name__ == '__main__':
    app.run()

app/templates/index.html

Una plantilla HTML básica:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Flask App</title>
    <link rel="stylesheet" href="{{ url_for('static', filename='style.css') }}">
</head>
<body>
    <h1>Welcome to My Flask App!</h1>
</body>
</html>

app/static/style.css

Un archivo CSS básico:

body {
    font-family: Arial, sans-serif;
}

  1. Ejecutando la Aplicación

Para ejecutar la aplicación, usa el siguiente comando:

python run.py

Visita http://127.0.0.1:5000/ en tu navegador para ver tu aplicación en funcionamiento.

Conclusión

En esta sección, hemos cubierto la estructura básica de una aplicación Flask y cómo organizar los archivos y directorios. Esta estructura te ayudará a mantener tu proyecto organizado y escalable a medida que crece. En el próximo módulo, profundizaremos en conceptos básicos como enrutamiento y manejo de métodos HTTP.

Curso de Desarrollo Web con Flask

Módulo 1: Introducción a Flask

Módulo 2: Conceptos Básicos de Flask

Módulo 3: Formularios y Entrada de Usuario

Módulo 4: Integración de Bases de Datos

Módulo 5: Autenticación de Usuarios

Módulo 6: Conceptos Avanzados de Flask

Módulo 7: APIs RESTful con Flask

Módulo 8: Despliegue y Producción

Módulo 9: Pruebas y Mejores Prácticas

Módulo 10: Extensiones y Ecosistema de Flask

© Copyright 2024. Todos los derechos reservados