Building a large applicationΒΆ

Following on from the quickstart app with the assumption that the number of routes and amount of code present has made a the single module unmanageable. A likely first solution is to simply split the code into modules and import the app from the initial module in each, perhaps like,

main.py

from quart import Quart

app = Quart(__name__)
...
import extra

extra.py

from main import app

@app.route('/extra/')
def extra():
    ...

however this quickly leads to circular imports and other problems. The solution is to use a blueprint for the extra module, like so,

main.py

from quart import Quart

from extra import blueprint

app = Quart(__name__)
app.register_blueprint(blueprint)
...

extra.py

from quart import Blueprint

blueprint = Blueprint('extra', __name__)

@blueprint.route('/extra/')
def extra():
    ...