Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

297
Vistas
¿Puedo evitar las importaciones circulares en Flask y SQLAlchemy?

aplicación/ inicio .py:

 from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__ name __) db = SQLAlchemy(app) from app import views, models

aplicación/modelos.py:

 from app import db # I want to avoid this everywhere

Realmente no me gusta que mis submódulos dependan de su padre. ¿También se pueden evitar las variables del paquete global? Quiero una solución más orientada a objetos.

Creo que una alternativa para la aplicación es usar Blueprints, pero luego pierdo el decorador de ruta. Además, no se puede hacer lo mismo para db con SQLAlchemy (¿o sí?).

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Eche un vistazo a este proyecto: https://github.com/sloria/cookiecutter-flask
Es un gran ejemplo para hacer las cosas de la manera correcta. Se utilizan muchas de las excelentes características de Flask: planos, fábricas de aplicaciones y más.

Así es como registran extensiones, como SQLAlchemy Database:

 # app/extensions.py from flask_sqlalchemy import SQLAlchemy db = SQLAlchemy() ... # app/app.py from app.extensions import db def create_app(config_object=ProdConfig): app = Flask(__name__.split('.')[0]) app.config.from_object(config_object) register_extensions(app) ... def register_extensions(app): db.init_app(app) ...
over 4 years ago · Santiago Trujillo Denunciar

0

Intenta usar el 3er. Creamos el archivo exts.py para instanciar SQLAlchemy así:

exts.py

 from flask_sqlalchemy import SQLAlchemy from flask_xxx import xxx db = SQLAlchemy() ...

ejecutar.py

 from flask import Flask from .exts import db, ... def register_extensions(app): db.init_app(app) ... def create_app(config): app = Flask(__ name __) app.config.from_object(config) register_extensions(app) return app app = create_app(config)

modelos.py

 from .exts import db class XXXModel(db.Model): pass
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda