If your flask project started to grow larger and many features added, you should not write them in a single file. Flask has its own way to separate the features using the blueprints.
Basic Structure and Files
As the starter, we only have one file inside our project:
- project |_ app.py
and the file is the simple flask app like this:
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' if __name__ == '__main__': app.run(debug=True)
Creating Products and Stores Blueprints
For examples, let's create a folder named blueprints
and also create the products_blueprints
and stores_blueprints
- project |_ blueprints |_ products_blueprint.py |_ stores_blueprint.py |_ app.py
and for the blueprints, let's make them simple like these:
blueprints/products_blueprints
:
from flask import Blueprint, jsonify products_blueprint = Blueprint('products_blueprint', __name__) @products_blueprint.route('/api/products') def product_list(): return jsonify({'data': [{'id': 1, 'name': 'Cappucinno'}]})
blueprints/stores_blueprints
:
from flask import Blueprint, jsonify stores_blueprint = Blueprint('stores_blueprint', __name__) @stores_blueprint.route('/api/stores') def store_list(): return jsonify({'data': [{'id': 1, 'name': '4th Avenue Cafe'}]})
Importing and Registering the Blueprints to Flask App
Let's modify the app.py
to import the blueprints and register them to the app:
from flask import Flask from blueprints.products_blueprint import products_blueprint from blueprints.stores_blueprint import stores_blueprint app = Flask(__name__) @app.route('/') def hello(): return 'Hello World!' app.register_blueprint(products_blueprint) app.register_blueprint(stores_blueprint) if __name__ == '__main__': app.run(debug=True)
That's it. Try to run and access the api/products
and api/stores
to make sure it works.
Top comments (0)