Django視圖類型總結
在對Django的視圖有所瞭解後,我們進一步對視圖的分類進行討論。視圖有兩種類型,劃分為基於功能的視圖和基於類的視圖,兩種視圖在功能和使用上各有不同。我們需要對它們進行學習,並能夠分清這兩種視圖的不同之處。下面我們就Django視圖的類型帶來詳解。
1、基於功能的視圖
基於函數的視圖是使用python中的函數編寫的,該函數以HttpRequest對象作為參數並返回HttpResponse對象。基於功能的視圖通常分為4種基本策略,即CRUD(創建,檢索,更新,刪除)。CRUD是用於開發的任何框架的基礎。
# import the standard Django Model # from built-in library from django.db import models # declare a new model with a name "GeeksModel" class GeeksModel(models.Model): # fields of the model title = models.CharField(max_length = 200) description = models.TextField() # renames the instances of the model # with their title name def __str__(self): return self.title
2、基於類的視圖
基於類的視圖提供瞭一種將視圖實現為Python對象而非函數的替代方法。與基於函數的視圖相比,基於類的視圖更易於管理。
from django.views.generic.list import ListView from .models import GeeksModel class GeeksList(ListView): # specify the model for list view model = GeeksModel
以上就是Django視圖的類型,大傢對基礎的內容有所掌握後,可以動手嘗試下代碼部分的運行,加深對兩種不同視圖的理解。
內容擴展:
ListView
在我們的博客應用中,有幾個視圖函數是從數據庫中獲取文章(Post)列表數據的:
blog/views.py def index(request): # ... def archive(request, year, month): # ... def category(request, pk): # ... def tag(request, pk): # ...
這些視圖函數都是從數據庫中獲取文章(Post)列表,唯一的區別就是獲取的文章列表可能不同。比如 index 獲取全部文章列表,category 獲取某個分類下的文章列表。
到此這篇關於Django視圖類型總結的文章就介紹到這瞭,更多相關Django視圖有哪些類型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Django中外鍵使用總結
- Django利用AJAX技術實現博文實時搜索
- 在Django中使用ElasticSearch
- python Django實現增刪改查實戰代碼
- 利用django和mysql實現一個簡單的web登錄頁面