zoukankan      html  css  js  c++  java
  • flask之配置文件

     1 flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:
     2     {
     3         'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
     4         'TESTING':                              False,                          是否开启测试模式
     5         'PROPAGATE_EXCEPTIONS':                 None,                          
     6         'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
     7         'SECRET_KEY':                           None,
     8         'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
     9         'USE_X_SENDFILE':                       False,
    10         'LOGGER_NAME':                          None,
    11         'LOGGER_HANDLER_POLICY':               'always',
    12         'SERVER_NAME':                          None,
    13         'APPLICATION_ROOT':                     None,
    14         'SESSION_COOKIE_NAME':                  'session',
    15         'SESSION_COOKIE_DOMAIN':                None,
    16         'SESSION_COOKIE_PATH':                  None,
    17         'SESSION_COOKIE_HTTPONLY':              True,
    18         'SESSION_COOKIE_SECURE':                False,
    19         'SESSION_REFRESH_EACH_REQUEST':         True,
    20         'MAX_CONTENT_LENGTH':                   None,
    21         'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
    22         'TRAP_BAD_REQUEST_ERRORS':              False,
    23         'TRAP_HTTP_EXCEPTIONS':                 False,
    24         'EXPLAIN_TEMPLATE_LOADING':             False,
    25         'PREFERRED_URL_SCHEME':                 'http',
    26         'JSON_AS_ASCII':                        True,
    27         'JSON_SORT_KEYS':                       True,
    28         'JSONIFY_PRETTYPRINT_REGULAR':          True,
    29         'JSONIFY_MIMETYPE':                     'application/json',
    30         'TEMPLATES_AUTO_RELOAD':                None,
    31     }
    32  
    33 方式一:
    34     app.config['DEBUG'] = True
    35  
    36     PS: 由于Config对象本质上是字典,所以还可以使用app.config.update(...)
    37  
    38 方式二:
    39     app.config.from_pyfile("python文件名称")
    40         如:
    41             settings.py
    42                 DEBUG = True
    43  
    44             app.config.from_pyfile("settings.py")
    45  
    46     app.config.from_envvar("环境变量名称")
    47         环境变量的值为python文件名称名称,内部调用from_pyfile方法
    48  
    49  
    50     app.config.from_json("json文件名称")
    51         JSON文件名称,必须是json格式,因为内部会执行json.loads
    52  
    53     app.config.from_mapping({'DEBUG':True})
    54         字典格式
    55  
    56     app.config.from_object("python类或类的路径")
    57  
    58         app.config.from_object('pro_flask.settings.TestingConfig')
    59  
    60         settings.py
    61  
    62             class Config(object):
    63                 DEBUG = False
    64                 TESTING = False
    65                 DATABASE_URI = 'sqlite://:memory:'
    66  
    67             class ProductionConfig(Config):
    68                 DATABASE_URI = 'mysql://user@localhost/foo'
    69  
    70             class DevelopmentConfig(Config):
    71                 DEBUG = True
    72  
    73             class TestingConfig(Config):
    74                 TESTING = True
    75  
    76         PS: 从sys.path中已经存在路径开始写
    77      
    78  
    79     PS: settings.py文件默认路径要放在程序root_path目录,如果instance_relative_config为True,则就是instance_path目录

    练习

    s1.py

    from flask import Flask
    app = Flask(__name__)
    #配置文件
    app.config.from_object("settings.DevelopmentConfig")
    
    @app.route('/index')
    
    def index():
        return ""
    
    if __name__ == '__main__':
        app.run()

    settings.py

    class BaseConfig(object):
        DEBUG = True
        SECRET_KEY = "asudflkjdfadjfakdf"
    
    
    class ProductionConfig(BaseConfig):
        DEBUG = False
    
    
    class DevelopmentConfig(BaseConfig):
        pass
    
    
    class TestingConfig(BaseConfig):
        pass
  • 相关阅读:
    java算法小例子
    Spring Boot学习笔记---Spring Boot 基础及使用idea搭建项目
    SpringBoot核心特性之组件自动装配
    spring cloud eureka注册原理-注册失败填坑
    红黑树存在的合理性
    IO模型(epoll)--详解-03
    IO模型(epoll)--详解-02
    IO模型(epoll)--详解-01
    JVM-类加载原理
    并发之原子性、可见性、有序性
  • 原文地址:https://www.cnblogs.com/1996-11-01-614lb/p/8975310.html
Copyright © 2011-2022 走看看