iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Flask 使用类组织配置详情
  • 663
分享到

Flask 使用类组织配置详情

2024-04-02 19:04:59 663人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

在实际的项目中,我们一般都会建立三个环境:开发、测试和生产环境,这三种环境会使用不同的配置组合,为了能方便地切换配置,我们可以为不同的环境创建不同的配置文件,但是最方便的做法是在单

在实际的项目中,我们一般都会建立三个环境:开发测试和生产环境,这三种环境会使用不同的配置组合,为了能方便地切换配置,我们可以为不同的环境创建不同的配置文件,但是最方便的做法是在单个配置文件中使用 python 类来组织多个不同类别的配置。

例如下面是一个应用的配置文件 settings.py,它包含一个基本配置类 BaseConfig

还有其他特定的配置类:

  • 开发配置类 DevelopConfig
  • 测试配置类 TestCofig
  • 生产配置类 ProductConfig

这些特定配置类都继承自基本配置类。


import logging

import os

class BaseConfig(object): 

    DEBUG = True

    SECRET_KEY = "qwertyuiop"

    sqlALCHEMY_DATABASE_URI = "Mysql://username:passWord@192.168.1.89:3306/app_db"

    SQLALCHEMY_TRACK_MODIFICATIONS = False

    Redis_URL = "redis://:password@192.168.1.89:6379/0"

    LEVEL_NAME = logging.DEBUG

class DevelopConfig(BaseConfig):

    pass

class TestConfig(BaseConfig):

    TESTING = True

    SQLALCHEMY_DATABASE_URI = "mysql://username:password@192.168.1.123:3306/app_db"

class ProductConfig(BaseConfig):

    DEBUG = False

    LEVEL_NAME = logging.ERROR

    SQLALCHEMY_DATABASE_URI = os.getenv("DATABASE_URL", "mysql://username:password@**.***.*.**:3306/app_db")

config_dict = {

    "develop": DevelopConfig,

    "product": ProductConfig,

    "test": TestConfig

}

上述代码中,首先建立了一个基本配置类 BaseConfig 并初始化了一些配置信息,然后针对不同的环境建立了不同的类继承自 BaseConfig 类,重新设置了不同的配置信息,例如数据库 url,测试环境与开发环境不同,生产环境优先从环境变量中获取。

然后,创建了一个字典来存储配置名称和配置类的映射,相当于提供了一个配置信息的访问入口,可以根据指定的配置名称来获取对应的配置类。

编写好了配置文件,我们在应用主程序中创建 flask 实例 app 时,就可以使用后app.config.from_object()方法加载配置,

例如:


from settings import config_dict 

app = Flask(__name__)

config_name = os.getenv('CONFIG_NAME', 'develop')

app.config.from_object(config_dict[config_name])

首先从配置文件中导入配置名称和配置类的映射字典 config_dict,从环境变量 CONFIG_NAME 读取配置名称,然后通过app.config.from_object()方法加载指定配置信息,如果没有读取到 CONFIG_NAME,默认使用 develop,对应的配置类即 DevelopmentConfig

Flask 支持多种方式加载配置信息,除了上述的从 Python 类中加载,还支持 从 JSON 文件中加载、从 py 文件中加载等,app.config类提供了不同的方法来加载不同格式的配置文件,还是比较灵活的。

到此这篇关于 Flask   使用类组织配置详情的文章就介绍到这了,更多相关 Flask   使用类组织配置内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Flask 使用类组织配置详情

本文链接: https://www.lsjlt.com/news/158488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Flask 使用类组织配置详情
    在实际的项目中,我们一般都会建立三个环境:开发、测试和生产环境,这三种环境会使用不同的配置组合,为了能方便地切换配置,我们可以为不同的环境创建不同的配置文件,但是最方便的做法是在单...
    99+
    2024-04-02
  • Golang使用ini库读取配置详情
    目录go-ini的分区go-ini的安装ini文件的格式读取ini文件的配置项直接加在ini文件,通过方法读取定义结构体来存放配置项,将配置项映射到结构体中父子分区两份关键代码go-...
    99+
    2024-04-02
  • 如何使用VBScript中的类组织开发
    这篇文章给大家分享的是有关如何使用VBScript中的类组织开发的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。当在一个机构内部创建Web应用程序时,有时候你会发现你自己从一个应用程序中复制和粘贴相同的代码到其它的...
    99+
    2023-06-08
  • SpringCloud Bus组件的使用配置详解
    目录什么是Bus搭建RabbitMQ服务实现自动配置刷新指定服务刷新配置集成webhook实现自动刷新什么是Bus 0.解释 https://spring.io/projects/s...
    99+
    2024-04-02
  • Java中的内部类使用详情
    目录一,内部类访问成员二,访问内部类成员1,直接访问内部类的中的成员2,访问成员一,内部类访问成员 1,内部类可以直接访问外部类的成员,包括私有。2,外部类要访问内部类,必须建立内部...
    99+
    2024-04-02
  • Vue 组件化基本使用详情
    目录1、什么叫做组件化 2、基本使用前言: 有时候有一组html结构的代码,并且这个上面可能还绑定了事件。然后这段代码可能有多个地方都被使用到了,如果都是拷贝来拷贝去,很多代码都是重...
    99+
    2024-04-02
  • Python类的定义和使用详情
    目录一、前言二、定义类三、创建类的实例四、“魔术”方法——_ init _()五、创建类的成员并访问1.创建实例方法并访问2.创建数据...
    99+
    2024-04-02
  • java中类与对象的使用详情
    目录1. 类的定义2.对象的创建和使用如何得到对象如何使用对象3.学生对象-练习4.成员变量的默认值1. 类的定义 面向对象是通过类和对象去描述和代表万千事物对象的,首先我们需要知道...
    99+
    2024-04-02
  • JavaScript中数组reduce()方法使用详情
    语法: reduce()对数组中的每个元素进行累加,返回一个新的值,可以传入初始值简单的讲就是返回数组中所有元素的和数  不会改变原始组的值  不会对空数组执行回...
    99+
    2024-04-02
  • vue activated在子组件中的使用详情
    页面:base: <template> <div class="tab-container"> <h1 style="text-ali...
    99+
    2024-04-02
  • Nginx配置使用详解
    配置步骤: 1、配置nginx的方法:首先要打开“/etc/nginx/conf.d/”文件夹; 2、然后创建配置文件;接着在“/etc/ngi...
    99+
    2024-04-02
  • audit详细使用配置
    audit是什么 Linux audit通过分析系统上正在发生的细节信息,能够有效帮助您提高系统的安全。但是,它本身不提供额外的安全性保障----它不会保护你的系统免受代码故障或者任何类型的漏洞攻击。...
    99+
    2023-09-15
    服务器 linux 运维
  • Vue中使用 class 类样式的方法详情
    目录1. 布尔值2.表达式3.多类封装4.可以直接在 v-bind:中使用数组形式使用class类在vue中为我们提供了 几种方式来使用class类的样式 1. 布尔值 我们先正常在...
    99+
    2024-04-02
  • Flutter组件--TabBar使用详情(分段控制器)
    TabBar介绍   一个显示水平行选项卡的Widget。 通常创建为 AppBar 的 AppBar.bottom 部分并与 TabBarView 结合使用 在什么情况下使用TabBar 当你的app内容类别比较多的时候,我们常常会用到...
    99+
    2023-09-06
    flutter TabController TabBar 分段控制器
  • JS数组方法some、every和find的使用详情
    目录1、some2、every3、find1、some 在MDN中这样定义:some()方法测试数组中是不是至少有1个元素通过了被提供的函数测试。它返回的是一个Boolean类型的值...
    99+
    2024-04-02
  • Pandas搭配lambda组合使用详解
    导入模块与读取数据 我们第一步需要导入模块以及数据集 import pandas as pd df = pd.read_csv("IMDB-Movie-Data.csv") d...
    99+
    2024-04-02
  • vue3+vite使用环境变量.env的一些配置情况详细说明
    目录1、设置.env中的内容信息 注意vue3+vite 必须使用VITE开头的配置信息 否则无法获取2、在 vite 中使用环境变量,可以用 import.meta.env,有四种...
    99+
    2022-12-08
    vue env文件配置 vue环境变量配置方法 vue环境变量配置
  • 分享C++三种类型new类型的运算符使用详情
    目录1.new操作符2.::operator new2.1原始调用2.2重载12.3重载23.place new1.new操作符 new operator,平时用的最多的new操作符...
    99+
    2024-04-02
  • 在vue自定义组件中使用 v-model指令详情
    目录一、前言1.技术点提前知二、在自定义的vue组件中使用v-model1.效果演示图2.自定义组件代码示例3.在父组件使用自定义组件三、优写时刻一、前言 如何实现在自定义的vue组...
    99+
    2024-04-02
  • 使用不同类型的配置文件
    欢迎各位小伙伴来到编程网,相聚于此都是缘哈哈哈!今天我给大家带来《使用不同类型的配置文件》,这篇文章主要讲到等等知识,如果你对Golang相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新...
    99+
    2024-04-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作