在做项目时,碰到的一种设置配置的方式,主要是因为公司将所有的配置写成了一个公司专有的配置库(各种资源地址,账号等),上线后的项目需要什么配置是从这个配置库的读取。但在开发时不能使用,所以在开发时需要自定义配置,且在上线时能够轻松的移除这些开发环境的配置。

在我们封装/自定义的文件中实现类定义:(如在文件 myjenkins.py)


class FlaskJenkins(object): def __init__(self, app=None):
self.app = app
self._j = None
if app:
self.init_app(app) def init_app(self, app):
app.config.setdefault('JENKINS_URL', 'https://jenkins.hahha.com') #设置默认的 配置信息,如果没有配置才会设置成功,如已有自定义配置则不会设置这些默认配置。(实际上公司的配置库里有这个配置,在初始化 app 时就已经在app.config中存在这些配置了,这里是示范。)
app.config.setdefault('JENKINS_USERNAME', 'username')
app.config.setdefault('JENKINS_PASSWORD', 'password')
self._j = Jenkins(
url=app.config['JENKINS_URL'],
username=app.config['JENKINS_USERNAME'],
password=app.config['JENKINS_PASSWORD']
) def get_job_info(self, name, depth=0, fetch_all_builds=False):
return self._j.get_job_info(name, depth, fetch_all_builds) def others_function(*args, **kwargs)
pass

在 extentions.py 中:


from myjenkins import FlaskJenkins jenkins = FlaskJenkins()

app 从配置文件中读取自定义配置,看是否有自定义的配置。配置文件 config.py 如下:

class Config(object):

    CONFIG_CENTER = 'jarvis/config'

    SQLALCHEMY_TRACK_MODIFICATIONS = False

    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@localhost:3306/jarvis?charset=utf8"

    JENKINS_USERNAME = "root"
JENKINS_PASSWORD = "passwd"
JENKINS_URL = "http://localhost:9090"

在项目初始化资源的文件中,去初始化我们的这个 jenkins (如jenkins地址,账号),如果在上面的自定义配置文件中没有配置,则会读取默认配置进行设置。

(如果没有在config.py中写入自定义的 JENKINS_USERNAME, JENKINS_PASSWORD, JENKINS_URL,则FlaskJenkins中的默认配置就会设置生效)


from extentions import jenkins jenkins.inint_app(app)

在其他需要用到jenkins的文件中,直接从extentions.py中导入 jenkins :


from extentions import jenkins # 调用方法
jenkins.other_functions()

记Flask的一种设置项目配置的方法!的更多相关文章

  1. Android中两种设置全屏的方法

    设置全屏的两种方法: 第一种:在配置文件里面配置: <?xml version="1.0" encoding="utf-8"?><manife ...

  2. nginx 的三种虚拟主机配置方法

    nginx三种虚拟主机配置的方法. 基于端口 在生产环境中一般使用端口或者域名. [root@web01 /etc/nginx/conf.d]# cat web01.conf server { lis ...

  3. Flask之项目配置,目录构建,闪现

    综合案例:学生成绩管理 新建项目目录students,并创建虚拟环境 mkvirtualenv students 安装开发中使用的依赖模块 pip install flask==0.12.4pip i ...

  4. 【flask】flask项目配置 app.config

    [理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...

  5. 免配置环境变量使用Tomcat+设置项目主页路径为http://localhost:8080+修改tomcat端口号

    一.免配置jdk JAVA_HOME和tomcat  CATALINA_HOME环境变量使用tomcat 众说周知,使用tomcat需要有java环境,一般情况下需要配置jdk和tomcat的路径到w ...

  6. 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等

    设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...

  7. pycharm的各种设置,配置

      http://blog.csdn.net/pipisorry/article/details/39909057# 目录(?)[+] pycharm学习技巧 Learning tips PyChar ...

  8. Flask中路由系统、Flask的参数及app的配置

    @app.route('/', methods=['GET', 'POST']) 1. @app.route()装饰器中的参数 methods:当前URL地址,允许访问的请求方式 @app.route ...

  9. Flask小总结+实例化Flask参数以及对app的配置

    Flask 小而精 三方组件全 稳定性相对较差 1.启动: from flask import Flask app = Flask(__name__) app.run("0.0.0.0&qu ...

随机推荐

  1. 在Angular4中使用ng2-baidu-map详解

    一.引言 之前在Angular4使用过百度地图,记录一下踩过的坑 二.实现 1.安装 npm install angular2-baidu-map 2.在app.module.ts配置 ak key在 ...

  2. 基本运算符,流程控制if、while

    基本运算符 算术运算符 运算符 描述 实例 + 加 a + b - 减 a - b * 乘 a * b / 除 a / b % 取余 a % b // 整除 a // b ** 幂运算 a ** b ...

  3. JMETER 用户变量作用域

    在编写JMETER 脚本时,我们会使用到变量,变量的作用域是线程. 我们通过下面的脚本验证一下变量的返回是线程. 1. 我们先定义一个amount的流程变量. 2.线程组使用三个线程 3.在线程组中添 ...

  4. openstack 创建实例报错 **aborted: Failed to allocate the network(s), not rescheduling

    消息 Build of instance 6320b5f2-edc2-4e8e-b07c-0047f7ed8f6a aborted: Failed to allocate the network(s) ...

  5. 安装教程-Xshell 5 远程连接工具的安装

    Xshell 5 远程连接工具的安装 1.实验描述 物理机中安装 Xshell 5 ,为实现 Linux 等操作系统提供远程连接的环境. 2.实验环境 物理机系统:Windows 10 企业版 3.实 ...

  6. sed练习2

    [root@node2 ~]# cp /etc/passwd /server/scprits/ [root@node2 ~]# cd /server/scprits/ [root@node2 scpr ...

  7. Dubbo服务集群容错

    Dubbo是Alibaba开源的分布式服务框架,我们可以非常容易地通过Dubbo来构建分布式服务,并根据自己实际业务应用场景来选择合适的集群容错模式,这个对于很多应用都是迫切希望的,只需要通过简单的配 ...

  8. b站滑动验证码图片的获取-python

    本文仅是获取验证码图片,python+selenium实现 图片的处理,算出偏移位置网上都有现成的:而由于b站的更新,图片的获取则与之前完全不同,不能直接从html中拿到 过程比较曲折所以记录一下,可 ...

  9. Debian 9 部分快捷键失效问题

    教程 具体修复过程: 安装gnome-screensaver包,重启恢复正常.

  10. sed和awk练习及知识点

    一.针对/etc/passwd操作 1.sed操作,将文件中的第九行至第十五行复制到第16行下. [root@ns1 lianxi]# sed '9,15H;16G' /etc/passwd 2.用a ...