zoukankan      html  css  js  c++  java
  • 查看django setting 源码

    form django .conf impirt settings   这个是真正的配置文件的settings

    form django.conf import golbal_settings  django全局 配置文件

     为什么 本地的settings 文件里面所有的名字要是大写

    第一步先是给 全局的那个大字典赋值   大字典就是 os.environ 然后通过setdefault 取值 

    "DJANGO_SETTINGS_MODULE", "book_admin.settings")
    取值 但是你的这个大字典里面 没有这个 DJANGO_SETTINGS_MODULE 所以会执行赋值操作 执行完赋值操作,然后在看一下 这个settingas文件 查看django内部的settings内部,首先
    settong是一个类的对象点进这个类 然后他会获取 你DJANGO_SETTINGS_MODULE 就等于后面这个book_admin.settings ( 这个是你本地的settings文件) 然后赋值操作,然后
    在将你的这个赋值了的变量名传入一个类中,首先 在这个类中 ,首先获取一个文件的文件名,然后dir一下获取到这个文件中所有的变量名首先判断
    判断你的这个文件中的所有变量名是不是大写,如果是那么 首先通过setattr 一个赋值的操作 然后 通过getattr操作将你的这个文件名放在第一位当作对象
    将循环的变量名放在第二为,取出这个变量名对应的值 然后赋值, 然后 接下来你这个类传进来的这个值settings_module 是你
    本地的那个setting 文件 然后给 self一个赋值操作,被你赋过值的 就等于你的setting文件然后importlib 通过这个模块的作用就是
    可以通过你的文件名来点出的你文件内所有的变量名获取到你的你变量所对应的值 然后赋值给了一个变量名
    这时候你的这个变量名就是你的settings本地的文件 且它可以点语法 获取到你setttings 所有的变量名
    然后接下来就是一个for循环 通过dir 获取到你这个变量名文件内部所有的变量名,循环 出来然后判断看你的这个是不是大写如果是那么从新赋值
    就会把你django内部的这个本来赋过值的变量名在赋值一遍 顶替掉
  • 相关阅读:
    创业公司必备的5款团队协作工具
    测试人必备:国内外最好用的6款Bug跟踪管理系统
    BUG克星:几款优秀的BUG跟踪管理软件
    千亿级SaaS市场:企业级服务的必争之地
    如何使用iClap创建普通批注
    详析手游圈从业人员必须知道的行业术语
    企业级服务元年:iClap高效解决手游更新迭代问题
    手游精品时代,iClap参会TFC高效解决手游问题
    全新办公方式,iClap引领企业级服务新浪潮
    vue自学小demo----前端
  • 原文地址:https://www.cnblogs.com/yangxinpython/p/11545006.html
Copyright © 2011-2022 走看看