前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask 项目参数配置以及读取

Flask 项目参数配置以及读取

作者头像
Devops海洋的渔夫
发布2019-11-07 13:55:25
2.1K0
发布2019-11-07 13:55:25
举报
文章被收录于专栏:Devops专栏Devops专栏Devops专栏

在Django项目中,配置的参数都是在settings.py文件中进行设置,如果需要使用参数,则可以导入from django.conf import settings,然后使用参数。

那么在Flask中,怎么处理呢?

Flask设置参数的方式

可以从函数看到,项目的配置参数可以使用多种方式来设置。下面主要来看看几种常用的设置方式。

使用配置文件的方式

  • 创建配置文件 settings.py

这个配置文件名称可以任意设置,不一定要用我这个。

  • 设置调试模式
  • 在项目中加载配置文件
# 加载配置文件
app.config.from_pyfile('settings.py')
  • 在视图函数中设置错误方法,查看Debug提示
# route()方法用于设定路由;类似spring路由配置
@app.route('/')
def hello_world():
    a = 1 / 0 # 分母为零,则会Debug报错
    return 'Hello, World!'
  • 访问视图函数

访问 http://127.0.0.1:5000/

可以看到能够显示调试模式的报错信息。

使用类的方式配置参数(推荐)

可以通过类来区分开发环境、测试环境、预发布环境、线上环境的配置。

  • 首先在刚才创建的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)

如果不同的环境,则可以使用不同的类进行加载即可。

使用config作为字典的方式直接设置配置参数

# 直接使用字典的方式配置参数
app.config['DEBUG'] = True

以上就是常用的三种参数配置的方式,下面来看看如何读取参数。

读取配置参数的方法

app.config.get() 

或者

from flask import current_app
current_app.config.get()

current_app主要用在其他模块,因为app是用在这个启动的主要模块上,到其他模块就没法引用了。 此时其他模块可以使用current_app来使用。

使用app.config.get() 读取参数

访问该视图函数:http://127.0.0.1:5000/

使用current_app.config.get()读取参数

current_app.config.get('MEDIA_ROOT')
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flask设置参数的方式
    • 使用配置文件的方式
      • 使用类的方式配置参数(推荐)
        • 使用config作为字典的方式直接设置配置参数
        • 读取配置参数的方法
          • 使用app.config.get() 读取参数
            • 使用current_app.config.get()读取参数
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档