在Django项目中,配置的参数都是在settings.py
文件中进行设置,如果需要使用参数,则可以导入from django.conf import settings
,然后使用参数。
那么在Flask中,怎么处理呢?
可以从函数看到,项目的配置参数可以使用多种方式来设置。下面主要来看看几种常用的设置方式。
settings.py
这个配置文件名称可以任意设置,不一定要用我这个。
# 加载配置文件
app.config.from_pyfile('settings.py')
# route()方法用于设定路由;类似spring路由配置
@app.route('/')
def hello_world():
a = 1 / 0 # 分母为零,则会Debug报错
return 'Hello, World!'
可以看到能够显示调试模式的报错信息。
可以通过类来区分开发环境、测试环境、预发布环境、线上环境的配置。
settings.py
中设置好配置类class BaseConfig():
"""通用基础配置"""
MEDIA_ROOT = "/static/media"
class TestConfig(BaseConfig):
"""测试环境配置"""
DEBUG = True
DB = '127.0.0.1'
class DevConfig(BaseConfig):
"""开发环境配置"""
DEBUG = True
DB = '192.168.1.1'
class PreProConfig(BaseConfig):
"""预发布环境配置"""
DEBUG = False
DB = '47.18.1.10'
class ProConfig(BaseConfig):
"""生产环境配置"""
DEBUG = False
DB = '47.18.1.1'
# 加载配置
from settings import TestConfig
app.config.from_object(TestConfig)
如果不同的环境,则可以使用不同的类进行加载即可。
# 直接使用字典的方式配置参数
app.config['DEBUG'] = True
以上就是常用的三种参数配置的方式,下面来看看如何读取参数。
app.config.get()
或者
from flask import current_app
current_app.config.get()
current_app主要用在其他模块,因为app是用在这个启动的主要模块上,到其他模块就没法引用了。 此时其他模块可以使用current_app来使用。
访问该视图函数:http://127.0.0.1:5000/
current_app.config.get('MEDIA_ROOT')