簡體   English   中英

Flask 應用程序配置采用其默認值而不是我的 config.py

[英]Flask app config take its default value instead of my config.py

這是我的燒瓶應用程序的 config.py

import os

class DefaultConfig(object):

        PROJECT = 'SEARCH & FILTER '
        PROJECT_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__$
        DEBUG = True
        TESTING = False
        SECRET_KEY = 'secret key'
        SERVER_NAME = 'https://s.herokuapp.com/'
        PREFERRED_URL_SCHEME = 'https'
        SQLALCHEMY_DATABASE_URI = os.environ['DATABASE_URL']
        SQLALCHEMY_TRACK_MODIFICATIONS = True
        SQLALCHEMY_ECHO = True
        NGROK_DOMAIN = 'https://s.herokuapp.com/'
        SHOPIFY_API_KEY = '*********************'
        SHOPIFY_SHARED_SECRET = '************************'

當我運行我的應用程序並嘗試打印應用程序的配置詳細信息時

print current_app.config.get('SHOPIFY_API_KEY')

它返回 NONE 所以,我嘗試打印

print current_app.config

以下詳細信息已打印

<Config {'SESSION_REFRESH_EACH_REQUEST': True, 'USE_X_SENDFILE': False, 'PREFERRED_URL_SCHEME': 'http', 'ENV': 'production', 'DEBUG': False, 'MAX_CONTENT_LENGTH': None, 'TESTING': False, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(0, 43200), 'TRAP_BAD_REQUEST_ERRORS': None, 'SESSION_COOKIE_NAME': 'session', 'SECRET_KEY': None, 'APPLICATION_ROOT': '/', 'EXPLAIN_TEMPLATE_LOADING': False, 'SESSION_COOKIE_SECURE': False, 'TRAP_HTTP_EXCEPTIONS': False, 'JSONIFY_MIMETYPE': 'application/json', 'PROPAGATE_EXCEPTIONS': None, 'JSON_SORT_KEYS': True, 'MAX_COOKIE_SIZE': 4093, 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_SAMESITE': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'JSONIFY_PRETTYPRINT_REGULAR': False, 'SESSION_COOKIE_HTTPONLY': True, 'JSON_AS_ASCII': True, 'PERMANENT_SESSION_LIFETIME': datetime.timedelta(31), 'SERVER_NAME': None, 'TEMPLATES_AUTO_RELOAD': None, 'SESSION_COOKIE_PATH': None}>

為什么我給定的憑據沒有設置到我的應用程序?

提前致謝!

如果要使用from_pyfile加載配置, from_pyfile使用這兩個文件:

應用程序

from flask import Flask
app = Flask(__name__)
app.config.from_pyfile('app_config.py')
print(app.config['FOO'])

app_config.py

FOO = 'bar'

如果要在配置中使用類,請使用from_object加載配置:

應用程序

from flask import Flask
app = Flask(__name__)
app.config.from_object('app_config.DefaultConfig')
print(app.config['FOO'])

app_config.py

class DefaultConfig:
    FOO = 'bar'

如果你的項目布局是這樣的:

helloshopify/
    - __init__.py
    - config_app.py

然后在__init__.py加載config_app.py ,然后只需要傳遞絕對路徑:

app.config.from_pyfile('config_app.py')

您應該導入它並使用 from_object。 像這樣的東西:

from .config import DefaultConfig

#...
app = Flask(__name__)
app.config.from_object(DefaultConfig)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM