flask中关于配置文件写法

关于Flask中的配置文件有多种写法。

一、通过from_object写入

项目根目录下创建一个settings.py配置文件,代码如下

class BaseConfig(object):
    DEBUG = True
    SECRET_KEY = "fsdajklfjdsalk1654356"
 
 
class ProductionConfig(BaseConfig):
    DEBUG = False
 
 
class DevelopmentConfig(BaseConfig):
    pass
 
 
class TestingConfig(BaseConfig):
    pass

导入:

from flask import Flask
 
app = Flask(__name__)
app.config.from_object("settings.DevelopmentConfig") # 
 
 
@app.route("/", methods=["GET", "POST"])
def index():
    return "index首页"
 
 
if __name__ == '__main__':
    app.run()

注意:

  上述中的from_object() ,()中是#python类或类的路径。源码会先分割再通过importlib模块转换并通过反射找到这个类。settings配置文件默认放到根目录。

二、在app.py中写入

app = Flask(__name__)

@app.route('/hello')  #hello/字符串参数路径
#将url和函数hello_world的对应关系添加到路由中
def hello_world():
    return "hello world"


if __name__ == '__main__':
#监听用户请求
#如果有用户请求,则执行app的__call__方法
    app.run()

直接在这个app.py文件中添加配置:

app = Flask(__name__)
# 配置项
app.config.update({
DEBUG: True,


})
@app.route(
'/hello') #hello/字符串参数路径 #将url和函数hello_world的对应关系添加到路由中 def hello_world(): return "hello world" if __name__ == '__main__': #监听用户请求 #如果有用户请求,则执行app的__call__方法 app.run()

 

配置具体有哪些?

 
    {
        'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
        'TESTING':                              False,                          是否开启测试模式
        'SQLALCHEMY_ECHO'                       False,                          控制台是否输出sql语句
        'SECRET_KEY':                           None,                           秘钥设置
        'PERMANENT_SESSION_LIFETIME':           timedelta(days=14),             session过期时间设置
        'PROPAGATE_EXCEPTIONS':                 None,                          
        'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
        '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,
    }

 

posted on 2023-06-26 11:16  一先生94  阅读(120)  评论(0编辑  收藏  举报

导航