您当前的位置: 首页 >  flask

IT之一小佬

暂无认证

  • 4浏览

    0关注

    1192博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Flask框架中环境变量的配置

IT之一小佬 发布时间:2022-08-13 23:23:03 ,浏览量:4

        在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()

运行结果:

关注
打赏
1665675218
查看更多评论
立即登录/注册

微信扫码登录

0.0512s