码迷,mamicode.com
首页 > 其他好文 > 详细

三、配置

时间:2020-07-23 22:51:40      阅读:81      评论:0      收藏:0      [点我收藏+]

标签:day   导入   obj   mem   perm   sci   一个   rman   trap   

from flask import Flask

app = Flask(__name__)

# 一共有5中配置的方式,但是常用的也就两种
# 当应用比较大时,可以将配置放在一个类中,整体来维护
# 当应用比较小时,可以直接使用app.secret_key这种方式来赋值
# 注意:from_object接受的是一个字符串
app.config.from_object("settings.DevelopmentConfig")


@app.route("/")
def index():
    return "Hello World"


if __name__ == __main__:
    app.run("localhost", 80, debug=True)
# settings.py


class BaseConfig:
    DEBUG = False
    TESTING = False
    DATABASE_URL = ""


class ProductionConfig(BaseConfig):
    DATABASE_URL = ""


class DevelopmentConfig(BaseConfig):
    DATABASE_URL = ""


class TestingConfig(BaseConfig):
    DATABASE_URL = ""

使用这种类的配置方式,可以先编写一个基础类,后面根据开发、测试、生产定制相应的开发配置、测试配置、生产配置,直接在修改from_object中的导入内容。

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,
    }
 
方式一:
    app.config[DEBUG] = True
 
    PS: 由于Config对象本质上是字典,所以还可以使用app.config.update(...)
 
方式二:
    app.config.from_pyfile("python文件名称")
        如:
            settings.py
                DEBUG = True
 
            app.config.from_pyfile("settings.py")
 
    app.config.from_envvar("环境变量名称")
        环境变量的值为python文件名称名称,内部调用from_pyfile方法
 
 
    app.config.from_json("json文件名称")
        JSON文件名称,必须是json格式,因为内部会执行json.loads
 
    app.config.from_mapping({DEBUG:True})
        字典格式
 
    app.config.from_object("python类或类的路径")
 
        app.config.from_object(pro_flask.settings.TestingConfig)
 
        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: 从sys.path中已经存在路径开始写
     
 
    PS: settings.py文件默认路径要放在程序root_path目录,如果instance_relative_config为True,则就是instance_path目录

 

三、配置

标签:day   导入   obj   mem   perm   sci   一个   rman   trap   

原文地址:https://www.cnblogs.com/loveprogramme/p/13368383.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!