记Flask的一种设置项目配置的方法!
在做项目时,碰到的一种设置配置的方式,主要是因为公司将所有的配置写成了一个公司专有的配置库(各种资源地址,账号等),上线后的项目需要什么配置是从这个配置库的读取。但在开发时不能使用,所以在开发时需要自定义配置,且在上线时能够轻松的移除这些开发环境的配置。
在我们封装/自定义的文件中实现类定义:(如在文件 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的一种设置项目配置的方法!的更多相关文章
- Android中两种设置全屏的方法
设置全屏的两种方法: 第一种:在配置文件里面配置: <?xml version="1.0" encoding="utf-8"?><manife ...
- nginx 的三种虚拟主机配置方法
nginx三种虚拟主机配置的方法. 基于端口 在生产环境中一般使用端口或者域名. [root@web01 /etc/nginx/conf.d]# cat web01.conf server { lis ...
- Flask之项目配置,目录构建,闪现
综合案例:学生成绩管理 新建项目目录students,并创建虚拟环境 mkvirtualenv students 安装开发中使用的依赖模块 pip install flask==0.12.4pip i ...
- 【flask】flask项目配置 app.config
[理论] 在很多情况下,你需要设置程序的某些行为,这时你就需要使用配置变量.在Flask中,配置变量就是一些大写形式的Python变量, 你也可以称之为配置参数或配置键.使用统一的配置变量可以避免在程 ...
- 免配置环境变量使用Tomcat+设置项目主页路径为http://localhost:8080+修改tomcat端口号
一.免配置jdk JAVA_HOME和tomcat CATALINA_HOME环境变量使用tomcat 众说周知,使用tomcat需要有java环境,一般情况下需要配置jdk和tomcat的路径到w ...
- 设计模式(一)单例模式:创建模式 ASPNET CORE WEB 应用程序的启动 当项目中 没有STARTUP.CS 类如何设置启动 配置等等
设计模式(一)单例模式:创建模式 先聊一下关于设计的几个原则(1)单一原则(SRP):一个类应该仅有一个引起它变化的原因 :意思就是 (一个类,最好只负责一件事情,并且只有一个引起它变化的原因(2)开 ...
- pycharm的各种设置,配置
http://blog.csdn.net/pipisorry/article/details/39909057# 目录(?)[+] pycharm学习技巧 Learning tips PyChar ...
- Flask中路由系统、Flask的参数及app的配置
@app.route('/', methods=['GET', 'POST']) 1. @app.route()装饰器中的参数 methods:当前URL地址,允许访问的请求方式 @app.route ...
- Flask小总结+实例化Flask参数以及对app的配置
Flask 小而精 三方组件全 稳定性相对较差 1.启动: from flask import Flask app = Flask(__name__) app.run("0.0.0.0&qu ...
随机推荐
- 【转】合并两个List并去掉重复项
原文:https://my.oschina.net/jack90john/blog/1493170 工作中很多时候需要用到合并两个List并去除其中的重复内容.这是一个很简单的操作,这里主要是记录一下 ...
- GCN实现3
参考 : 首先看两篇论文,大概了解一下原理性的东西: GRAPH CONVOLUTIONAL NETWORKS THOMAS KIPF, 30 SEPTEMBER 2016 http://tkipf. ...
- 【Mysql】初识MySQL
一. MySQL是客户端/服务器架构1)macOS操作系统上的默认安装目录:/usr/local/mysql/ 在MySQL的安装目录下有一个bin目录,这个目录下存放着许多可执行文件.2)将该bi ...
- JMETER 计数器的表现
1.计数器在线程中表现(虚拟用户). 线程组使用4个线程即4个虚拟用户. 如果不勾选每用户独立跟踪计数器. 那么这个计数器将会累加4次. 计算结果为7. 勾选的情况. 这里我们可以看到 index 一 ...
- odoo10学习笔记十二:web controller
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/11189332.html 一:路由 odoo.http.route(route=None, **kw) 装饰器 ...
- Centos7安装宝塔控制面板
目录 宝塔面板安装和使用图文教程 1,通过ssh工具登录服务器 2,安装宝塔面板 2,登录宝塔面板 3,设置宝塔面板 3.1,首先我们进入面板设置 3.2,更改面板端口 3.3,绑定域名 3.4,绑定 ...
- React 借助pubsub-js进行兄弟组件的传递值
1===> raect中两个 兄弟组件 互相通信使用的技术 使用 消息订阅(subscribe)和发布(publish)机制 s儿 伯 s rai b pʌ b lɪ ʃ 有一个库可以处理 Pu ...
- Spring(001)-Hello Spring
Spring系列第一篇,先通过Spring实现一个Hello Spring程序. 访问 https://start.spring.io/ 开始spring代码骨架的构建. 输入mvn坐标 加入web和 ...
- 201871010106-丁宣元 《面向对象程序设计(java)》第十六周学习总结
201871010106-丁宣元 <面向对象程序设计(java)>第十六周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...
- 201871010132--张潇潇--《面向对象程序设计(java)》第十四周学习总结
博文正文开头格式:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...