Flask的配置对象(config)是一个字典(dict)的子类(subclass),所以你可以把配置用键值对的方式存储进去。

1、一些重要的配置,可以设置在系统环境变量里,又或者放到某个服务器里,用的时候下载配置文件并读取配置

# 在linux系统里设置环境变量
export MAIL_USERNAME=me@greyli.com

# 用的时候取环境变量
import os
from flask import Flask

app = Flask(__name__)
app.config['MAIL_USERNAME'] = os.getenv('MAIL_USERNAME', 'me@greyli.com') # os.geteve(key,default=None)  Get an environment variable, return None if it 
# doesn't exist.The optional second argument can specify an alternate default.

2、直接写入主脚本

from flask import Flask

app = Flask(__name__)
app.config['SECRET_KEY'] = 'some secret words'
app.config['DEBUG'] = True
app.config['ITEMS_PER_PAGE'] = 10

或者写成下面的方式:

from flask import Flask

app = Flask(__name__)
app.config.update(
    DEBUG=True,
    SECRET_KEY='some secret words',
    ITEMS_PER_PAGE=10
)

3、单独的配置文件configure.py

SECRET_KEY = 'some secret words'
DEBUG = True
ITEMS_PER_PAGE = 10

在创建程序实例后导入配置

import config

...
app = Flask(__name__)
app.config.from_object(configure)
...

4、为开发环境、测试环境、生成环境、预发布环境创建不同的测试类

 1 import os
 2 basedir = os.path.abspath(os.path.dirname(__file__))
 3 
 4 
 5 class BaseConfig:  # 基本配置类
 6     SECRET_KEY = os.getenv('SECRET_KEY', 'some secret words')
 7     ITEMS_PER_PAGE = 10
 8 
 9 
10 class DevelopmentConfig(BaseConfig):
11     DEBUG = True
12     SQLALCHEMY_DATABASE_URI = os.getenv('DEV_DATABASE_URL', 'sqlite:///' + os.path.join(basedir, 'data-dev.sqlite')
13 
14 
15 class TestingConfig(BaseConfig):
16     TESTING = True
17     SQLALCHEMY_DATABASE_URI = os.getenv('TEST_DATABASE_URL', 'sqlite:///' + os.path.join(basedir, 'data-test.sqlite')
18     WTF_CSRF_ENABLED = False
19 
20 
21 config = {
22     'development': DevelopmentConfig,
23     'testing': TestingConfig,
24 
25     'default': DevelopmentConfig
26 }
config.py

相关文章:

  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2021-11-17
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
  • 2022-12-23
  • 2022-12-23
  • 2021-08-29
  • 2021-12-06
相关资源
相似解决方案