Flask配置介绍及配置写法

配置介绍

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:
{
        'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
        'TESTING':                              False,                          是否开启测试模式
        'PROPAGATE_EXCEPTIONS':                 None,                          
        'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
        'SECRET_KEY':                           None,
        'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
        'USE_X_SENDFILE':                       False,
        'LOGGER_NAME':                          None,
        'LOGGER_HANDLER_POLICY':               'always',
        'SERVER_NAME':                          None,
        'APPLICATION_ROOT':                     None,
        'SESSION_COOKIE_NAME':                  'session',
        'SESSION_COOKIE_DOMAIN':                None,
        'SESSION_COOKIE_PATH':                  None,
        'SESSION_COOKIE_HTTPONLY':              True,
        'SESSION_COOKIE_SECURE':                False,
        'SESSION_REFRESH_EACH_REQUEST':         True,
        'MAX_CONTENT_LENGTH':                   None,
        'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
        'TRAP_BAD_REQUEST_ERRORS':              False,
        'TRAP_HTTP_EXCEPTIONS':                 False,
        'EXPLAIN_TEMPLATE_LOADING':             False,
        'PREFERRED_URL_SCHEME':                 'http',
        'JSON_AS_ASCII':                        True,
        'JSON_SORT_KEYS':                       True,
        'JSONIFY_PRETTYPRINT_REGULAR':          True,
        'JSONIFY_MIMETYPE':                     'application/json',
        'TEMPLATES_AUTO_RELOAD':                None,
    }

 

配置文件路径设置

在 Flask 类生成app对象,可以根据instance_relative_configinstance_path来额外设置

instance_relative_config = True来设置是否根据自定义的路径生效,不指定instance_path时,该路径默认为根目录/instance/文件夹下,指定时,必须要传入绝对路径!

instance_path无法使templatesstatic文件夹在指定的目录下生效

import os

other_path = os.path.join(os.path.dirname(__file__),'other')

# app = Flask(__name__)
# app = Flask(__name__,instance_relative_config=True)
app = Flask(__name__,instance_relative_config=True,instance_path=other_path)
app.config.from_pyfile('config.py')
print(app.config.get('MY'))

配置文件写法

 

写法一:

该写法仅限于两个字段 ---- secret_key, debug

    app.secret_key='asfasdf'
    app.debug=True

 

写法二:

通过config字典操作,字段同样是全大写

app所有的配置都在 config 这个字典中

    app.config['DEBUG']=True
    print(app.config)

 

写法三:

新建一个settings.py , 通过app.config.from_pyfile('settings.py')使其生效

    app.config.from_pyfile('settings.py')
    print(app.config['NAME'])

settings.py

NAME = 666
DEBUG = True

 

写法四

通过类的方法,app.config.from_object()

settings.py

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'

class ProductionConfig(Config):
    DATABASE_URI = 'mysql://user@localhost/foo'


class DevelopmentConfig(Config):
    DEBUG = True

app.py–使用方法

# 开发时使用该方式
app.config.from_object('settings.DevelopmentConfig')
# 项目在生产环境
app.config.from_object('settings.ProductionConfig')
print(app.config)

 

其他

环境变量与 json 文件

app.config.from_envvar("环境变量名称")
app.config.from_json("json文件名称")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值