flask之配置文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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://[email protected]/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

 

以上是关于flask之配置文件的主要内容,如果未能解决你的问题,请参考以下文章

flask之配置文件

IT之路:flask之蓝图

flask框架之日志的配置

Flask框架从入门到精通之参数配置

Flask之Pyecharts绘图

Flask之初学者