Bird
0
0

You want to use both Flask-Login and Flask-Mail extensions in your Flask app without causing circular import errors. Which initialization approach is best?

hard📝 Application Q9 of 15
Flask - Ecosystem and Patterns
You want to use both Flask-Login and Flask-Mail extensions in your Flask app without causing circular import errors. Which initialization approach is best?
AInitialize extensions by passing the app instance directly at global scope
BImport and initialize extensions inside each route function separately
CCreate extension instances globally without app, then call <code>init_app(app)</code> inside the app factory
DAvoid using Flask extensions to prevent circular imports
Step-by-Step Solution
Solution:
  1. Step 1: Understand circular imports

    Circular imports often occur when extensions are initialized with app at global scope.
  2. Step 2: Use the 'init_app' pattern

    Creating extension instances globally without app and initializing them inside the app factory avoids circular dependencies.
  3. Final Answer:

    Create extension instances globally without app, then call init_app(app) inside the app factory -> Option C
  4. Quick Check:

    Use 'init_app' in factory to prevent circular imports [OK]
Quick Trick: Use 'init_app' in factory to avoid circular imports [OK]
Common Mistakes:
MISTAKES
  • Initializing extensions globally with app instance
  • Importing extensions inside routes
  • Avoiding extensions instead of fixing imports

Want More Practice?

15+ quiz questions · All difficulty levels · Free

Free Signup - Practice All Questions
More Flask Quizzes