我在理解如何将Flask应用程序拆分为多个文件时遇到麻烦。
我正在创建一个Web服务,并且想将api拆分为不同的文件(AccountAPI.py,UploadAPI.py等),只是我没有一个巨大的python文件。
我读过你可以使用“蓝图”来做到这一点,但我不确定这条路线对我来说是正确的。
最终,我想运行一个Main python文件,并包含其他文件,以便在运行时将它们视为一个大文件。
例如,如果我有Main.py和AccountAPI.py,我希望能够做到这一点:
Main.py:
from flask import Flask import AccountAPI app = Flask(__name__) @app.route("/") def hello(): return "Hello World!" if __name__ == "__main__": app.run()
AccountAPI.py:
@app.route("/account") def accountList(): return "list of accounts"
我知道这个例子显然行不通,但是有可能这样做吗?
是的,蓝图是实现此目标的正确方法。你正在尝试做的事情可以这样实现:
主程序
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()
AccountAPI.py
from flask import Blueprint account_api = Blueprint('account_api', __name__) @account_api.route("/account") def accountList(): return "list of accounts"
如果这是一个选项,则你可以考虑为不同的API /蓝图使用不同的URL前缀,以便将它们完全分开。可以对上面的register_blueprint调用稍作修改即可完成此操作:
app.register_blueprint(account_api, url_prefix='/accounts')