Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

290
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda