• 2. Flask配置文件


    一、常用加载方式

    1. 方式一:字段赋值方式导入

    ​ 缺点:对于极少数字段配置可以使用,多字段配置不可取

    from flask import Flask
     
    app = Flask(__name__)
     
    app.config["debug"] = True
    app.secret_key = 'afadfadfaf'
     
    @app.route("/")
    def index():
        return "hello"
     
     
    if __name__ == '__main__':
        app.run()
    

    2. 方式二:py文件导入

    # settings.py
     
    DEBUG = True
    ...  
    
    from flask import Flask
     
    app = Flask(__name__)
    
    # 指定setting文件
    app.config.from_pyfile("settings.py") 
    
    # 环境变量的值为python文件名称名称,内部调用from_pyfile方法
    app.config.from_envvar("环境变量名称")
    
    # JSON文件名称,必须是json格式,因为内部会执行json.loads        
    app.config.from_json("json文件名称")
    
    #字典格式        
    app.config.from_mapping({'DEBUG':True})
            
     
    @app.route("/")
    def index():
        return "hello"
     
     
    if __name__ == '__main__':
        app.run()
    
    

    3. 方式三:Python类路径方式导入(推荐)

    ​ 这种方式,可以控制测试环境、线上环境的切换

    (1)app.py
    from flask import Flask
     
    app = Flask(__name__)
    
    # 系统环境需能找到的模块路径,默认在app同级目录下 
    app.config.from_object("test.settings.TestingConfig")
    
    @app.route("/")
    def index():
        return "hello"
     
     
    if __name__ == '__main__':
        app.run()
    
    (2)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
     
     
    class TestingConfig(Config):
        TESTING = True 
    
    ps:settings.py文件默认路径要放在程序root_path目录,如果instance_relative_config为True,则就是instance_path目录 
    

    4. 默认配置参数

    {
        '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,
    }
    

    参考:https://www.diandian100.cn/7c0db3b1.html

  • 相关阅读:
    浅谈Lyndon分解
    【CF914G】Sum the Fibonacci(FWT)
    【洛谷6914】[ICPC2015 WF] Tours(非树边随机边权,树边边权异或)
    【洛谷7143】[THUPC2021 初赛] 线段树(动态规划)
    【洛谷7325】[WC2021] 斐波那契(数论)
    【CF666E】Forensic Examination(广义后缀自动机+线段树合并)
    【CF685C】Optimal Point(二分答案)
    【洛谷7364】有标号二分图计数(多项式开根)
    【CF679E】Bear and Bad Powers of 42(ODT+线段树)
    【洛谷5307】[COCI2019] Mobitel(动态规划)
  • 原文地址:https://www.cnblogs.com/hq82/p/12635954.html
Copyright © 2020-2023  润新知