The application factory
We will use the application factory pattern again in this chapter; let's add our skeleton create_app
method to the application/__init__.py
module and include our Flask-SQLAlchemy database initialization as well:
from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy from flask.ext.bcrypt import Bcrypt # Initialize the db extension, but without configuring # it with an application instance. db = SQLAlchemy() flask_bcrypt = Bcrypt() def create_app(config=None): app = Flask(__name__) if config is not None: app.config.from_object(config) db.init_app(app) flask_bcrypt.init_app(app) return app
Let's include our barebones run.py
:
from application import create_app app = create_app() app.run()
This should give us the ability to run the application using the built-in Werkzeug application server via the following code:
$ python run.py