儲存乙個物件的時候, Django執行下面的步驟

2022-08-02 07:24:12 字數 566 閱讀 3587

發出乙個預存訊號。它發出乙個將要儲存乙個物件的通知。你可以註冊乙個監聽程式,在訊號發出的時候就會被呼叫。預處理資料。對於物件的每個字段,將根據需要進行自動的資料修改。大部分欄位並不預處理,它們會保持它們原來的樣子。預處理僅僅用在那些有特殊性質的字段,比如檔案字段。

為資料庫準備資料。每乙個欄位先要把當前值轉化成資料庫中可以儲存的資料的型別。

大多數欄位的資料不需要預先準備。簡單的資料型別,比如整型和字串等python物件可以直接寫進資料庫。然而,更複雜的資料型別需要做一些修改。比如, datefields

使用python的 datetime

物件來儲存資料。資料庫並不能儲存 datetime

物件,所以該字段要存入資料庫先要把值轉化為符合iso標準的日期字串。

向資料庫中插入資料。經過預處理準備好的資料然後會組合成一條sql語句來插入資料庫。

發出存畢訊號。與預存訊號類似,存畢訊號在物件成功儲存之後發出。同樣,這些訊號也還沒有文件化

js中乙個物件當做引數傳遞時候?

高程中講到 ecmascript 中所有函式的引數都是按值傳遞 這就像把值從乙個變數複製到另乙個變數一樣。那引用型別的值也是像基本型別一樣?直接看栗子一 varperson functionobj o varresult obj person console.log result.name kafu...

js中乙個物件當做引數傳遞時候?

高程中講到 ecmascript 中所有函式的引數都是按值傳遞 這就像把值從乙個變數複製到另乙個變數一樣。那引用型別的值也是像基本型別一樣?直接看栗子一 var person function obj o var result obj person console.log result.name k...

乙個Django專案

先要有一台db,建立庫 t1,並建立表 classes,有如下記錄 mysql select from classes id title 1 全棧4期 建立django專案 在新視窗中開啟 注釋掉 settings.py 檔案中的這一行 django.middleware.csrf.csrfview...