I'm having trouble understanding how to split a flask app into multiple files.
I'm creating a web service and I want to split the api's into different files (AccountAPI.py, UploadAPI.py, ...), just so I don't have one huge python file.
I've read that you can do this with Blueprints, but I'm not entirely sure that route is the right one for me.
Ultimately I want to run one Main python file and include other files so that when it runs, they are considered one big file.
For example if I have Main.py and AccountAPI.py I want to be able to do this:
from flask import Flask
app = Flask(__name__)
return "Hello World!"
if __name__ == "__main__":
return "list of accounts"
Yes, Blueprints are the right way to do it. What you are trying to do can be achieved like this:
from flask import Flask from AccountAPI import account_api app = Flask(__name__) app.register_blueprint(account_api) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
from flask import Blueprint account_api = Blueprint('account_api', __name__) @account_api.route("/account") def accountList(): return "list of accounts"
If this is an option, you might consider using different URL prefixes for the different APIs/Blueprints in order to cleanly separate them. This can be done with a slight modification to the above
For further documentation, you may also have a look at the official docs.