Reputation: 117
To get CLIENT_ID
set up instances/application.cfg
, I'm using current_app
but it's not working.
The error:
KeyError: 'CLIENT_ID'
from flask import current_app
# Authentication
@app.route('/auth/redirect', methods=['GET'])
def authorize():
client_id = current_app.config['CLIENT_ID']
app/instance/application.cfg
CLIENT_ID='XXXXXXXXXXXXXXXXXXXXXX'
CLIENT_SECRET='XXXXXXXXXXXXXXXXXX'
app/config.py
import os
class BaseConfig(object):
SQLALCHEMY_TRACK_MODIFICATIONS = False
class DevelopmentConfig(BaseConfig):
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
class ProductionConfig(BaseConfig):
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI=os.environ.get('DATABASE_URL')
config = {
"default": "main.config.BaseConfig",
"development": "main.config.DevelopmentConfig",
"production": "main.config.ProductionConfig",
}
def configure_app(app):
config_name= os.getenv('FLASK_ENV')
app.config.from_object(config[config_name])
app.config.from_pyfile('application.cfg', silent=True)
app/__init__.py
# Initialized app
app = Flask(__name__, instance_relative_config=True)
configure_app(app)
Upvotes: 1
Views: 629
Reputation: 815
from flask import Flask
from config import DevelopmentConfig
app = Flask(__name__)
app.config.from_object(DevelopmentConfig)
@app.route('/auth/redirect', methods=['GET'])
def authorize():
client_id = current_app.config['CLIENT_ID']
app/config.py
class BaseConfig:
SQLALCHEMY_TRACK_MODIFICATIONS = False
CLIENT_ID='XXXXXXXXXXXXXXXXXXXXXX'
CLIENT_SECRET='XXXXXXXXXXXXXXXXXX'
class DevelopmentConfig(BaseConfig):
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI = 'sqlite:///app.db'
class ProductionConfig(BaseConfig):
DEBUG = True
TESTING = True
SQLALCHEMY_DATABASE_URI=os.environ.get('DATABASE_URL')
hope this help you
Upvotes: 1