technically, you don't need drawings, you can simply register each route in its create_app function. Generally speaking, this is not a great idea, and this is why drawings exist.
Example without drawings
def create_app(): app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') return app
You can have one factory application for testing and any other if you configure it this way. If you want to load different drawings based on, if they are in the process of testing, you can do something like this.
from project.config import configurations as c def create_app(config=None): " make the app " app = Flask(__name__) app.config.from_object(c.get(config, None) or c['default']) configure_blueprints(app) return app def configure_blueprints(app): " register the blueprints on your app " if app.testing: from project.test_bp import bp app.register_blueprint(bp) else: from project.not_test_bp import bp app.register_blueprint(bp)
then project/config.py could be as follows:
class DefaultConfig(object): PROJECT_NAME = 'my project' class TestingConfig(DefaultConfig): TESTING = True class DevConfig(DefaultConfig): DEBUG = True configurations = { 'testing': TestingConfig, 'dev': DevConfig, 'default': DefaultConfig }
Create a folder for each project, where __init__.py in the folder creates the project. Say for drawing routes
from flask import Blueprint bp = Blueprint('routes', __name__) from project.routes import views
then in project/routes/views.py you can put your views.
from project.routes import bp @bp.route('/') def index(): return render_template('routes/index.html')
corvid
source share