我在理解如何将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调用稍作修改即可完成此操作:
register_blueprint
app.register_blueprint(account_api, url_prefix='/accounts')
有关更多文档,您还可以查看官方文档。