Flask框架中环境变量的配置

本文介绍了在Flask项目中进行配置的四种方式:直接编码、使用update方法、从配置对象加载及从配置文件加载。并展示了如何设置SECRET_KEY及JSON_AS_ASCII等配置项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        在Flask项目的配置中都是通过app.config对象来进行配置的。比如要配置一个项目的SECRET_KEY,可以使用app.config['SECRET_KEY'] = "xxx"来进行设置,在Flask项目中,有四种方式进行项目的配置:

1、直接编码:

from flask import Flask

app = Flask(__name__)
app.config['SECRET_KEY'] = 'I love you'


@app.route('/')
def hello_world():
    # data = app.config['SECRET_KEY']
    data = app.config.get('SECRET_KEY')
    return 'Hello World! My SECRET_KEY is : ' + data


if __name__ == '__main__':
    app.run()

运行结果:

2、app.config是flask.config.Config的实例,而Config类是继承自dict,因此可以通过update方法:

from flask import Flask

app = Flask(__name__)
# app.config['SECRET_KEY'] = 'I love you'
app.config.update(
    DEBUF=True,
    SECRET_KEY='I love you'
)


@app.route('/')
def hello_world():
    # data = app.config['SECRET_KEY']
    data = app.config.get('SECRET_KEY')
    return 'Hello World! My SECRET_KEY is : ' + data


if __name__ == '__main__':
    app.run()

运行结果:

3、当配置文件非常多是时候,可以单独的把所有配置项放到一个配置文件中。通过app.config.from_object()方法进行加载,并且该方法既可以接收模块的的字符串名称,也可以模块对象。

# app.py
from flask import Flask

app = Flask(__name__)
# 方法一:通过模块字符串
# app.config.from_object('config')

# 方法二:通过模块对象
import config
app.config.from_object(config)


@app.route('/')
def hello_world():
    # data = app.config['SECRET_KEY']
    data = app.config.get('SECRET_KEY')
    return 'Hello World! My SECRET_KEY is : ' + data


if __name__ == '__main__':
    app.run()

# config.py
# 注意:配置项中的字母最好都是大写字母
SECRET_KEY = 'I love you'

运行结果:

4、也可以通过另外一个方法app.config.from_pyfile()进行加载,该方法传入一个文件名,通常是以.py结尾的文件,但也不限于只使用.py后缀的文件。

from flask import Flask

app = Flask(__name__)

# silent=True表示如果配置文件不存在的时候不抛出异常,默认是为False,会抛出异常
app.config.from_pyfile('config.py', silent=True)


@app.route('/')
def hello_world():
    # data = app.config['SECRET_KEY']
    data = app.config.get('SECRET_KEY')
    return 'Hello World! My SECRET_KEY is : ' + data


if __name__ == '__main__':
    app.run()

运行结果:

Flask项目内置了许多的配置项,所有的内置配置项可以详细通过官网进行查询:Configuration Handling — Flask Documentation (2.0.x)

以JSON_AS_ASCII为了进行演示:   【默认JSON_AS_ASCII=True】

示例代码:  【app.config['JSON_AS_ASCII'] = True】

from flask import Flask

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = True


@app.route('/')
def hello_world():
    return {'name': '张三'}


if __name__ == '__main__':
    app.run()

运行结果:

示例代码:【app.config['JSON_AS_ASCII'] = False】

from flask import Flask

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False


@app.route('/')
def hello_world():
    return {'name': '张三'}


if __name__ == '__main__':
    app.run()

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值