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

在我们封装/自定义的文件中实现类定义:(如在文件 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. 【转】合并两个List并去掉重复项

    原文:https://my.oschina.net/jack90john/blog/1493170 工作中很多时候需要用到合并两个List并去除其中的重复内容.这是一个很简单的操作,这里主要是记录一下 ...

  2. GCN实现3

    参考 : 首先看两篇论文,大概了解一下原理性的东西: GRAPH CONVOLUTIONAL NETWORKS THOMAS KIPF, 30 SEPTEMBER 2016 http://tkipf. ...

  3. 【Mysql】初识MySQL

    一. MySQL是客户端/服务器架构1)macOS操作系统上的默认安装目录:/usr/local/mysql/  在MySQL的安装目录下有一个bin目录,这个目录下存放着许多可执行文件.2)将该bi ...

  4. JMETER 计数器的表现

    1.计数器在线程中表现(虚拟用户). 线程组使用4个线程即4个虚拟用户. 如果不勾选每用户独立跟踪计数器. 那么这个计数器将会累加4次. 计算结果为7. 勾选的情况. 这里我们可以看到 index 一 ...

  5. odoo10学习笔记十二:web controller

    转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189332.html 一:路由 odoo.http.route(route=None, **kw) 装饰器 ...

  6. Centos7安装宝塔控制面板

    目录 宝塔面板安装和使用图文教程 1,通过ssh工具登录服务器 2,安装宝塔面板 2,登录宝塔面板 3,设置宝塔面板 3.1,首先我们进入面板设置 3.2,更改面板端口 3.3,绑定域名 3.4,绑定 ...

  7. React 借助pubsub-js进行兄弟组件的传递值

    1===> raect中两个 兄弟组件 互相通信使用的技术 使用 消息订阅(subscribe)和发布(publish)机制 s儿 伯 s rai b pʌ b lɪ ʃ 有一个库可以处理 Pu ...

  8. Spring(001)-Hello Spring

    Spring系列第一篇,先通过Spring实现一个Hello Spring程序. 访问 https://start.spring.io/ 开始spring代码骨架的构建. 输入mvn坐标 加入web和 ...

  9. 201871010106-丁宣元 《面向对象程序设计(java)》第十六周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十六周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  10. 201871010132--张潇潇--《面向对象程序设计(java)》第十四周学习总结

    博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...