推荐课程
Flask中的配置文件是一个flask.config.Config对象(继承字典)。后续会剖析源码瞅瞅。
基本方法:
from flask import Flask
app = Flask(__name__)
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'GuHanZheIsCool'
开头讲了Config对象继承字典,所以还可以使用app.config.update(…)。
from flask import Flask
app = Flask(__name__)
app.config.from_pyfile('config.py')
config.py配置文件示例:
DEBUG = True
SECRET_KEY = 'GuHanZheIsCool'
DATABASE_URI = 'mysql://user:password@localhost/demodatabase'
from flask import Flask
app = Flask(__name__)
app.config.from_envvar('FLASK_CONFIG')
- 但是,在真实开发时,我们会面临一个问题——一般一个项目会有测试、开发和生产三大环境,这三大环境下的配置会各有不同,比如不同的数据库、不同的cookie配置等。所以Flask为我们提供了一个非常适合开发的解决方法。如下:
真实开发使用的方法:
- 使用类配置——创建一个配置类,将所有的配置项作为类的属性,并通过app.config.from_object()方法导入。例如,创建一个名为Config的配置类,然后使用以下代码导入配置:
from flask import Flask
app = Flask(__name__)
app.config.from_object("settings.DevelopmentConfig")
@app.route('/index', methods=['GET', 'POST'])
def index():
return 'hello world'
if __name__ == '__main__':
app.run('localhost', 4000)
- 同级目录下的settings.py文件:
import os
class BaseConfig(object):
"""Base Configuration"""
PROJECT_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
DEBUG = True
SECRET_KEY = 'GuHanZheIsCool'
REDIS_URL = os.environ.get("REDIS_URL")
UPLOAD_FILE_FOLDER = "./project/data"
FILE_MAX_SIZE = 30 * 1024 * 1024
class ProductionConfig(BaseConfig):
"""Production Configuration"""
DEBUG = False
class DevelopmentConfig(BaseConfig):
"""Development Configuration"""
pass
class TestingConfig(BaseConfig):
"""Testing Configuration"""
pass
在 Flask 中,配置文件通常是一个 Python 模块,其中包含各种 Flask 配置选项的值。以下是 Flask 配置文件中可设置的一些基本选项:
上面只是Flask 配置文件中的一些基本选项,详细需要查看 Flask 官方文档,了解更多有关配置选项的信息。
以下是Flask官方文档中关于配置项的一些开发中常需查询的链接:
在这些文档中,有Flask配置项的详细说明和示例。提供了关于如何设置和使用配置项的详细说明,以及每个配置项的作用和默认值。