Django之Apps原始碼學習

2022-09-01 14:48:11 字數 1223 閱讀 8095

先了解下官方文件的介紹

django包含了乙個已經安裝應用的登錄檔,這個登錄檔儲存著配置資訊以及用來自省,同時也維護著可用模型的列表。

原始碼面前見真相:

這是乙個登錄檔,儲存著已安裝應用的配置資訊,同時也跟蹤著模型,例如提供reverse-relations。

初始化的主要屬性:

主要方法:

if

self.ready: #該登錄檔是否已經被填充

return

#populate() might be called by two threads in parallel on servers

#that create threads before initializing the wsgi callable.

# populate()在初始化wsgi呼叫之前,可能會被會建立執行緒的伺服器上的兩個並行的執行緒呼叫。

with self._lock:

#_lock()為theading.lock()物件,在with上下文管理器中自動獲取鎖,處理過後,自動釋放鎖。

ifself.ready:

return##

if

raise runtimeerror("

populate() isn't reentrant")

#for entry in

if

else

raise

improperlyconfigured(

"""duplicates: %s

# counts =counter(

duplicates =[

name

for name, count in counts.most_common() if count > 1]

ifduplicates:

raise

improperlyconfigured(

"""duplicates: %s

" % ", "

.join(duplicates))

#phase 2: import models modules.

# 匯入模型模組

self.clear_cache()

self.models_ready =true

# self.ready = true

Redux createStore原始碼學習

redux apiexport原始碼結構上面我們看到了redux的api和原始碼結構,看的出來,warning.js和index.js不用解析,都看得懂,關鍵時其餘的幾個module,那我們從最重要的createstore講起。export var actiontypes 首先定義了乙個action...

pytorch geometric 原始碼學習

作者大神真的太屌了,膜拜,工程實現能力太強了 本文希望能夠記錄學習其原始碼的過程 data dataset 部分 涉及優化?property 一種python內建裝飾器,可以將乙個成員函式當成成員變數來訪問,例如 class planetoid inmemorydataset url def ini...

Django原始碼解析 middleware

1.middleware簡介 django的middleware的概念相當於ssh框架裡面的filter的概念。中間鍵的作用就是對所有的request,在request前,和在response後做一定的處理。django的中間鍵型別分為五種 我們在自定義中間鍵的時候,至少需要實現上面的五個函式之一。...