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

在我们封装/自定义的文件中实现类定义:(如在文件 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. vue父子组件的通信

    一.父组件向子组件传递数据 1.首先形成父子组件关系 <!DOCTYPE html> <html lang="en"> <head> <m ...

  2. vue学习指南:第二篇(详细Vue基础) - Vue的指令

    一. Vue 的介绍 1. vue是一个 mvvm 的框架.(面试官经常会问的),angular 是 mvc的框架. 2. vm 是 vum 的实例,这个实例存在计算机内存中,主要干两件大事: 1. ...

  3. 如何在一个ubuntu系统上搭建SVN版本控制工具

    有话说,由于公司项目部署需要,将Windows工程迁移到Linux,通过调查确定使用Ubuntu的Linux操作系统.那么如何快速搭建和Windows一样快捷方便的开发环境就很重要了.本文讲述如何在一 ...

  4. Mysql之架构篇

    1.主从复制解决方案 这是MySQL自身提供的一种高可用解决方案,数据同步方法采用的是MySQL replication技术.MySQL replication就是从服务器到主服务器拉取二进制日志文件 ...

  5. Codeforces 1278F: Cards

    题目传送门:CF1278F. 题意简述: 有 \(n\) 个独立随机变量 \(x_i\),每个随机变量都有 \(p = 1/m\) 的概率取 \(1\),有 \((1-p)\) 的概率取 \(0\). ...

  6. mac pro下安装安装 SymPy 和 matplotlib报错解决方案

    因为自己写python分析时候要用到这两个库,但是mac 上安装不成功.原来是要安装原来装 matplotlib 之前先要安装 freetyp 和 libpng. brew install freet ...

  7. zookeper分布式搭建1

    1.zookeper的下载与安装,见:https://www.cnblogs.com/wanerhu/p/11144815.html 2.准备三台centos,进入etc/hosts 3.编辑内容 映 ...

  8. 【Excel】输入单引号

    首位输入:输入两个单引号 拼接输入:可以引入输入 举个例子:拼接一个SQL,values都是字符串,需要引号 =IF( OR(A2="",B2="",C2=&q ...

  9. 关于c# 中读取系统内存大小的问题。

    在程序中,调用WMI的时候,出现一个问题,就是我系统有插了两条内存条,共4G.然而自己只能在程序中查到安装内存为2G,感觉有点不淡定.这是之前的代码. static ManagementObjectS ...

  10. ASP.NET Core MVC 中自定义视图

    ASP.NET Core MVC 中的视图发现 ASP.NET Core MVC 中有提供了几个 View()的重载方法. 如果我们使用下面提供 View()的重载方法,它将查找与 Action 方法 ...