Performance: Application factory pattern deep dive
This pattern affects initial page load speed and server response time by controlling when and how the Flask app and its components are created.
from flask import Flask def create_app(): app = Flask(__name__) @app.route('/') def home(): return 'Hello World!' return app if __name__ == '__main__': app = create_app() app.run()
from flask import Flask app = Flask(__name__) @app.route('/') def home(): return 'Hello World!' if __name__ == '__main__': app.run()
| Pattern | App Initialization Timing | Memory Usage | Startup Delay | Verdict |
|---|---|---|---|---|
| Global app instance | At import time | Higher (all loaded upfront) | Blocks startup | [X] Bad |
| Application factory | At runtime when called | Lower (lazy initialization) | Minimal startup delay | [OK] Good |
application factory pattern in Flask?app = Flask(__name__) and returns it.print(app.config['DEBUG']) output?def create_app():
app = Flask(__name__)
app.config.from_mapping(DEBUG=True)
return app
app = create_app()
print(app.config['DEBUG'])DEBUG=True using app.config.from_mapping().app.config['DEBUG'] outputs the value set, which is True.def create_app():
app = Flask(__name__)
@app.route('/')
def home():
return 'Hello'
return app
app = create_app()
app.run()app.run() directly without if __name__ == '__main__' can cause issues when importing.app.config.from_object().Pass the test and this pattern moves unknown