構成された負荷の05フラスコソースコード解析

05フラスコ源:ローディング構成

1.ロード・プロファイル

from flask import Flask

app = Flask(__name__,static_url_path='/xx')

app.config.from_object('xx.xx')

2.app.configソースコード解析

  1. 実行config内側make_config方法

    self.config = self.make_config(instance_relative_config)

    make_config

    def make_config(self, instance_relative=False):
        return self.config_class(root_path, defaults)
  2. 例としてはconfig_class、クラス

    config_class = Config
    class Config(dict):
    # Config继承了字典

3.from_objectソースコード解析

  1. 実行from_object機能を

    • Configオブジェクトへのすべてのキーと値のペア
    def from_object(self, obj):
        if isinstance(obj, string_types):
            obj = import_string(obj)
            for key in dir(obj):
                if key.isupper():
                    self[key] = getattr(obj, key)
  2. 実行import_string(obj)機能を

    • 最後の点の分割によりIMPORT_NAMEプロフィール
    • オブジェクト名で撮影リフレクション
    def import_string(import_name, silent=False):
        import_name = str(import_name).replace(":", ".")
        module_name, obj_name = import_name.rsplit(".", 1)
        module = __import__(module_name, globals(), locals(), [obj_name])
        return getattr(module, obj_name)

4.まとめ

  • コンフィグにすべてのキーと値のペアのコンフィギュレーションファイル、およびすべての鍵オブジェクトを読み込み

    • Configが辞書です
  • 設定ファイルはapp.configをに割り当てられConfigオブジェクトのすべてが含まれています

おすすめ

転載: www.cnblogs.com/liubing8/p/11930219.html