首页 > 其他分享 >【2.0】flask框架之配置文件

【2.0】flask框架之配置文件

时间:2023-08-26 21:45:00浏览次数:44  
标签:__ 配置文件 flask app 配置 Flask 2.0 True

【一】引入

  • django 有settings配置文件
  • 所有web框架都会有配置文件-
  • 配置文件的形式可能不太一样

【二】flask的配置文件

【1】配置方式一(简单配置)

import uuid

from flask import Flask

app = Flask(__name__)
# 配置方式一 :只能配置 debug 和 secret_key
app.debug = True
app.secret_key = str(uuid.uuid4())


@app.route('/index', methods=['GET'])
def index():
    print(app.debug)  # True
    print(app.secret_key)  # 2536678f-fd50-4ee3-8f72-01543d2bc480
    return 'hello world'

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

【2】配置方式二(依赖app.config)

import uuid

from flask import Flask

app = Flask(__name__)

'''
<Config {
'DEBUG': False, 
'TESTING': False, 
'PROPAGATE_EXCEPTIONS': None, 
'SECRET_KEY': None, 
'PERMANENT_SESSION_LIFETIME': datetime.timedelta(days=31), 
'USE_X_SENDFILE': False, 
'SERVER_NAME': None, 
'APPLICATION_ROOT': '/', 
'SESSION_COOKIE_NAME': 'session', 
'SESSION_COOKIE_DOMAIN': None, 
'SESSION_COOKIE_PATH': None, 
'SESSION_COOKIE_HTTPONLY': True, 
'SESSION_COOKIE_SECURE': False, 
'SESSION_COOKIE_SAMESITE': None, 
'SESSION_REFRESH_EACH_REQUEST': True, 
'MAX_CONTENT_LENGTH': None, 
'SEND_FILE_MAX_AGE_DEFAULT': None, 
'TRAP_BAD_REQUEST_ERRORS': None, 
'TRAP_HTTP_EXCEPTIONS': False, 
'EXPLAIN_TEMPLATE_LOADING': False, 
'PREFERRED_URL_SCHEME': 'http', 
'TEMPLATES_AUTO_RELOAD': None, 
'MAX_COOKIE_SIZE': 4093}>
'''
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = str(uuid.uuid4())


@app.route('/index', methods=['GET'])
def index():
    print(app.debug)
    # True
    print(app.secret_key)
    # 1517038c-5414-4a3c-a1d9-3b29bc09d6a5
    return 'hello world'


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

【3】配置方式三(依赖settings)

  • settings.py
import uuid

DEBUG = True

SECRET_KEY = str(uuid.uuid4())
  • main.py
from flask import Flask

app = Flask(__name__)

# 配置方式三 :
app.config.from_pyfile('settings.py')
# 也可以通过在环境变量中配置配置文件路径的方式获取到配置文件
# app.config.from_pyfile(os.environ['YOURAPPLICATION_SETTINGS'])


@app.route('/index', methods=['GET'])
def index():
    print(app.debug)
    # True
    print(app.secret_key)
    # 87d673a5-4f54-4298-b45b-453621df298b
    return 'hello world'


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

【4】配置方式四(依赖类)

  • settings.py
# 基本配置
class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'


# 生产环境
class ProductionConfig(Config):
    DATABASE_URI = 'mysql://user@localhost/foo'


# 开发环境
class DevelopmentConfig(Config):
    DEBUG = True


class TestingConfig(Config):
    TESTING = True
  • main.py
from flask import Flask

app = Flask(__name__)

# 配置方式四:
# 参数为 Python类或者类的路径
app.config.from_object('day002.settings.DevelopmentConfig')


@app.route('/index', methods=['GET'])
def index():
    print(app.debug)
    # True
    print(app.secret_key)
    # None
    return 'hello world'

【5】配置方式五(依赖json数据)

app.config.from_json("json文件名称")
# JSON文件名称,必须是json格式,因为内部会执行json.loads

【补充】配置中心

【1】介绍

  • 配置中心是一个用于管理和集中存储应用程序配置信息的平台或工具。它提供了一种集中式的方式,让开发团队可以轻松地管理和调整应用程序的配置参数,而无需修改代码或重新部署应用程序。

【2】功能

  • 集中化管理:

    • 配置中心允许集中存储和管理应用程序的配置信息。

    • 开发团队可以通过配置中心对不同环境或不同应用程序的配置进行分组和组织,以便更容易地进行管理和维护。

  • 动态更新:

    • 配置中心的一个关键功能是支持动态更新配置。

    • 这意味着当需要更改某个配置参数时,开发团队可以直接在配置中心进行修改而无需重新部署应用程序。这可以减少停机时间,并使配置变更更加灵活和高效。

  • 版本控制:

    • 配置中心可以跟踪和管理配置的版本。

    • 这使得开发团队可以了解每个配置的历史变更记录,并可以根据需要还原到特定的配置版本。

  • 安全管理:

    • 配置中心通常提供安全机制来保护敏感的配置信息。
    • 只有经过授权的用户或角色才能访问和修改配置,从而确保配置的安全性和保密性。

【3】示例

  • 举例来说,一个电子商务平台可能有各种配置参数,如数据库连接地址、支付接口地址、日志级别等。
    • 通过使用配置中心,开发团队可以将这些配置信息存储在配置中心中,并在需要时动态地进行修改。
  • 例如,如果需要更改支付接口地址,开发团队可以直接登录配置中心,找到相应的配置项,并将新的支付接口地址更新到配置中心中。
    • 此时,无需重新部署应用程序,支付接口地址将立即生效。
    • 这样,即使在运行中的系统中也能够及时调整各种配置参数,提高了系统的可维护性和灵活性。
  • 总之,配置中心是一个非常有用的工具,可以帮助开发团队有效地管理和调整应用程序的配置信息,提高开发效率和系统的可维护性。

【4】配置中心选型Nacos

标签:__,配置文件,flask,app,配置,Flask,2.0,True
From: https://www.cnblogs.com/dream-ze/p/17659499.html

相关文章

  • 【4.0】Flask框架之CBV
    【一】基本使用fromflaskimportFlask,render_template#template_folder默认就是当前文件夹下的templates可以不写app=Flask(__name__,template_folder='templates')#FBV:基于函数的视图@app.route('/index',methods=['GET'])defindex():return......
  • Vue2.0中使用bpmn-js
      使用bpmn-js在网页中绘制流程图 1.新建vue项目,输入命令安装bpmn-jsnpminstallbpmn-js--save 2.在src/main.js中引入css样式//css样式import'bpmn-js/dist/assets/diagram-js.css'import'bpmn-js/dist/assets/bpmn-font/css/bpmn.css'import'bpmn-js/di......
  • 通过运行中的容器生成 Docker Compose 配置文件
    背景笔者之前有一次不小心删除了原始的docker-compose.yml文件,不过正在运行的Docker容器还在,找了许久,发现一个方法可以从这些容器中生成一个等效的DockerCompose配置文件。本文将介绍使用autocompose工具从正在运行的容器中反向生成docker-compose.yml文件。安装所需工......
  • spark配置文件介绍
    spark配置文件介绍spark有很多参数,然后会有不同的配置文件,这里做一下介绍,也供自己以后查询。1.sparkproperties:这个可以控制应用程序的绝大部分属性。并且可以通过SparConf对象挥着Java系统属性进行配置;2.环境变量(Environmentvariable):这个可以分别对每台机器单独进行相应设置,比......
  • 基于java极速WEB+ORM 框架:jfinal2.0开发的通用后台管理系统及源码
    final2-common-admin1、基于java极速web开发框架:jfinal2.0开发的通用后台管理系统,包括完整的登录、注册、菜谱管理、厨师管理、餐厅管理等功能2、开发时是基于jdk1.8、tomcat7.0,utf8编码3、运行时请修改配置文件:a_little_config.txt及相应的运行环境:JavaBuildPath、TargetedR......
  • VScode settings.json默认配置文件路径
    LinuxUbuntu:/home/${用户名}/.config/Code/User/settings.jsonWindows:C:\Users\用户名\AppData\Roaming\Code\User来源、参考:https://blog.csdn.net/cyqzy/article/details/130011314......
  • 大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC——官方的运行配置文件中
    官方的HPC运行配置文件:#!/usr/bin/envbashecho-----printenvvars-----if["${CCS_ALLOC_FILE}"!=""];thenecho""ls-la${CCS_ALLOC_FILE}echo------cat${CCS_ALLOC_FILE}cat${CCS_ALLOC_FILE}fiexport......
  • Docker 安装Redis 无法使用配置文件设置密码问题
    背景最近开发需要使用各种组件,如果都到开发机上安装,会占用电脑资源较多。所以使用docker容器来安装这些组件。例如redis、mongodb、mysql、rabitmq、elasticsearch等等。遇到的问题用edis官方镜像启动容器后,发现没有加载配置文件。解决方案1.redis镜像拉下来......
  • Ubuntu22.04(禁用)彻底删除Snap以及出现“rm: 无法删除"XXX":只读文件系统”的解决方案
    Ubuntu22.04(禁用)彻底删除Snap以及出现”rm:无法删除"XXX":只读文件系统“的解决方案导语Snaps是Ubuntu的母公司Canonical于2016年4月发布Ubuntu16.04LTS(LongTermSupport,长期支持版)时引入的一种容器化的软件包格式。自Ubuntu16.04LTS起,Ubuntu操作系......
  • Ubuntu 22.04上编译Android 13 AOSP系统
    背景因为最近空闲期,刚好遇到了一个小项目,需要AOSP系统的,因此就花费了一些时间捣鼓了一下,源码编译aosp13环境:vm22.04空间350g内存24g环境配置以下所有操作需要全球通上网,已经安装git环境。把Ubuntu源切到国内,下载速度快很多。sudoaptinstallunzipziplibssl-devli......