心の中でフラスコ法、構成アイテムのセット!

プロジェクトを行うには、方法は、同社が独自の構成データベースの設定(リソースアドレス、口座番号など)のすべてに書いた主な理由は、設定の構成が遭遇した、オンラインのプロジェクトは、コンフィギュレーションは何ですか後このライブラリーから設定を読み込みます。しかし、それはときにオンラインの開発環境を設定するので、必要なカスタム構成を開発する場合、開発に使用することができず、容易に除去することができます。

私たちは)中:( 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()

カスタム設定があるかどうかを確認するために、構成ファイルからカスタム設定を読み込むためのアプリ。次のように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_USERNAME、JENKINS_PASSWORD、JENKINS_URLカスタムにconfig.pyで書かれていない場合は、デフォルトの設定ではFlaskJenkinsに有効になります)


from extentions import jenkins


jenkins.inint_app(app)

ジェンキンスを使用する必要がある他の文書では、ジェンキンスさんは、中extentions.pyから直接インポートします。


from extentions import jenkins


# 调用方法
jenkins.other_functions()

おすすめ

転載: www.cnblogs.com/ChangAn223/p/11431009.html