ฉันกำลังพยายามเข้าถึงการกำหนดค่าแอปพลิเคชันภายในพิมพ์เขียวauthorisation.py
ซึ่งอยู่ในแพ็คเกจ API ฉันกำลังเริ่มต้นพิมพ์เขียว__init__.py
ที่ใช้ในauthorisation.py
.
__init__.py
from flask import Blueprint
api_blueprint = Blueprint("xxx.api", __name__, None)
from api import authorisation
authorisation.py
from flask import request, jsonify, current_app
from ..oauth_adapter import OauthAdapter
from api import api_blueprint as api
client_id = current_app.config.get('CLIENT_ID')
client_secret = current_app.config.get('CLIENT_SECRET')
scope = current_app.config.get('SCOPE')
callback = current_app.config.get('CALLBACK')
auth = OauthAdapter(client_id, client_secret, scope, callback)
@api.route('/authorisation_url')
def authorisation_url():
url = auth.get_authorisation_url()
return str(url)
ฉันได้รับ RuntimeError: กำลังทำงานนอกบริบทของแอปพลิเคชัน
ฉันเข้าใจว่าเหตุใดจึงเป็นเช่นนั้น แต่วิธีใดที่ถูกต้องในการเข้าถึงการตั้งค่าการกำหนดค่าเหล่านั้น
---- อัปเดต ---- ฉันได้ดำเนินการนี้ชั่วคราวแล้ว
@api.route('/authorisation_url')
def authorisation_url():
client_id, client_secret, scope, callback = config_helper.get_config()
auth = OauthAdapter(client_id, client_secret, scope, callback)
url = auth.get_authorisation_url()
return str(url)
current_app
พร็อกซีจะพร้อมใช้งานในบริบทของคำขอเท่านั้น