基于https://pypi.org/project/flask-api-key/我正在尝试实现:
from flask import Flask
from flask_api_key import APIKeyManager, api_key_required
app = Flask(__name__)
my_key_manager = APIKeyManager(app)
my_key_manager.create("First_key")
@app.route("/")
def home():
return "hi Home"
@app.route("/protected")
@api_key_required
def protected():
return "hi protected"
if __name__ == "__main__":
app.run(debug=True)
错误信息:
“运行时错误:在应用程序上下文之外工作。这通常意味着您尝试使用所需的功能 以某种方式与当前应用程序对象交互。解决 为此,使用 app.app_context() 设置应用程序上下文。请参阅 文档以获取更多信息。”
Flask 应用程序上下文可以创建为 Python 上下文管理器:
with app.app_context():
my_key_manager.create("my_first_key")
如果您想了解有关应用程序上下文的背景信息,请参阅 https://flask.palletsprojects.com/en/2.3.x/appcontext/。
注意,当运行代码的更新版本时,我遇到了 Flask_api_key 库的另一个问题,看起来像这个问题:https://github.com/jthop/flask-api-key/issues/2