zoukankan      html  css  js  c++  java
  • Flask源码之:配置加载

    加载配置文件的思路:

    1. 读取配置文件中的所有键值对,并将键值对全都放到Config对象。(Config是一个字典,因为它继承了Dict)

    2. 把包含所有配置文件的Config对象,赋值给 app.config,然后可以用app.config去调用配置。

    看源码:

    项目启动:
    from flask import Flask
    
    app = Flask(__name__,static_url_path='/xx')
    
    # app.config =  Config对象
    # Config对象.from_object('xx.xx')
    # app.config
    app.config.from_object('xx.xx')
    
    @app.route('/index')
    def index():
            return 'hello world'
    
    if __name__ == '__main__':
            app.run()

     app.config.from_object('xx.xx')用来加载xx.xx配置文件中的配置

    鼠标左键+ctrl点击config看源码,再点make_config

     点config_class

    所以make_config中return返回的是Config的一个实例化对象

    Config进去,发现Config继承了dict,所以Config的对象就是个字典.

    所以最终self.config得到的就是个字典.

    你再回去点from_object

     if isinstance(obj, string_types):就是判断你from_object()中括号内是不是个字符串,如果是字符串.

    继续点 import_string进去

     obj = import_string(obj),其实就是对括号内的字符串进行拆分,把.之前的路径取出来,引入这个文件目录,再把文件名引入进来去调用里面的各个配置(类似于importlib模块)

    再回到from_object函数中,最后self[key] = getattr(obj, key),将所有配置以字典形式存储,键为大写字母.值为键在配置文件中所对应的内容.

    这样就读取到了配置文件的内容到内存中,放到了app.config的字典中了.

  • 相关阅读:
    欧拉法求乘率
    利用连分数求乘率
    反乘率
    乘率
    别害怕暂时的迷茫
    别害怕心中的理想
    HDU6072 Logical Chain
    P3345 [ZJOI2015]幻想乡战略游戏
    P4449 于神之怒加强版
    [笔记] 拉格朗日插值法
  • 原文地址:https://www.cnblogs.com/shengjunqiye/p/11924581.html
Copyright © 2011-2022 走看看