簡單示例實現django的orm

2021-09-29 18:07:20 字數 1226 閱讀 8082

在django中如果我們定義了乙個user的model。就可以使用user.objects.create()等方法.那麼在django的原始碼中是如何實現這種寫法的呢?

下面**從最外層簡單完成了django orm的呼叫方法實現.

ps:下面的**只是實現了django的最外面呼叫實現而已.

class manager:

# manager類

def create(self):

"""用法:user.objects.all()

"""return "django orm get function"

def all(self):

"""用法:user.objects.all()

"""return "django orm all function"

class modelbase(type):

def __new__(cls, name, bases, attrs):

if name == "model":

attrs["objects"] = manager()

return type.__new__(cls, name, bases, attrs)

# model類

class model(object, metaclass=modelbase):

pass

# 這個一般在django的models.py中間中的寫法

# 實現django中的objects覆蓋寫法

class usermanager(manager):

def create(self):

return "django中可以用objects覆蓋原來的orm方法"

class user(model):

"""下面是一般model欄位定義,可忽略"""

objects = usermanager()

# 普通的django orm用法

class personal(model):

"""下面是一般model欄位定義,可忽略"""

pass

print(user.objects.create())

# django中可以用objects覆蓋原來的orm方法

print(personal.objects.create())

# django orm get function

Django 分頁的簡單實現

django分頁比較簡單,它內建了乙個paginator類.這樣對分頁的操作只需要明白這個類就ok了。def list request after range num 5 bevor range num 4 try page int request.get.get page 1 print page...

Django實現簡單helloworld

1.主題 web開發 2.環境 1 ubuntu 2 python3.5以上 3 開發工具 4 djiango 1.113.具體操作 1.新建專案hello 用3.6版本python pyenv virtualenv 3.6.4 hello 2.進入專案 pyenv activate hello 3...

python實現簡單爬蟲功能的示例

在我們日常上網瀏覽網頁的時候,經常會看到一些好看的,我們就希望把這些儲存 或者使用者用來做桌面桌布,或者用來做設計的素材。我們最常規的做法就是通過滑鼠右鍵,選擇另存為。但有些滑鼠右鍵的時候並沒有另存為選項,還有辦法就通過就是通過截圖工具擷取下來,但這樣就降低的清晰度。好吧 其實你很厲害的,右鍵檢視頁...