Django視圖類(lèi)型總結(jié)
在對(duì)Django的視圖有所了解后,我們進(jìn)一步對(duì)視圖的分類(lèi)進(jìn)行討論。視圖有兩種類(lèi)型,劃分為基于功能的視圖和基于類(lèi)的視圖,兩種視圖在功能和使用上各有不同。我們需要對(duì)它們進(jìn)行學(xué)習(xí),并能夠分清這兩種視圖的不同之處。下面我們就Django視圖的類(lèi)型帶來(lái)詳解。
1、基于功能的視圖基于函數(shù)的視圖是使用python中的函數(shù)編寫(xiě)的,該函數(shù)以HttpRequest對(duì)象作為參數(shù)并返回HttpResponse對(duì)象。基于功能的視圖通常分為4種基本策略,即CRUD(創(chuàng)建,檢索,更新,刪除)。CRUD是用于開(kāi)發(fā)的任何框架的基礎(chǔ)。
# import the standard Django Model# from built-in libraryfrom 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.title2、基于類(lèi)的視圖
基于類(lèi)的視圖提供了一種將視圖實(shí)現(xiàn)為Python對(duì)象而非函數(shù)的替代方法。與基于函數(shù)的視圖相比,基于類(lèi)的視圖更易于管理。
from django.views.generic.list import ListViewfrom .models import GeeksModelclass GeeksList(ListView): # specify the model for list viewmodel = GeeksModel
以上就是Django視圖的類(lèi)型,大家對(duì)基礎(chǔ)的內(nèi)容有所掌握后,可以動(dòng)手嘗試下代碼部分的運(yùn)行,加深對(duì)兩種不同視圖的理解。
內(nèi)容擴(kuò)展:
ListView
在我們的博客應(yīng)用中,有幾個(gè)視圖函數(shù)是從數(shù)據(jù)庫(kù)中獲取文章(Post)列表數(shù)據(jù)的:
blog/views.pydef index(request): # ...def archive(request, year, month): # ...def category(request, pk): # ...def tag(request, pk): # ...
這些視圖函數(shù)都是從數(shù)據(jù)庫(kù)中獲取文章(Post)列表,唯一的區(qū)別就是獲取的文章列表可能不同。比如 index 獲取全部文章列表,category 獲取某個(gè)分類(lèi)下的文章列表。
到此這篇關(guān)于Django視圖類(lèi)型總結(jié)的文章就介紹到這了,更多相關(guān)Django視圖有哪些類(lèi)型內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. python b站視頻下載的五種版本2. 如何通過(guò)vscode運(yùn)行調(diào)試javascript代碼3. 《CSS3實(shí)戰(zhàn)》筆記--漸變?cè)O(shè)計(jì)(一)4. JavaScript設(shè)計(jì)模式之策略模式實(shí)現(xiàn)原理詳解5. python如何寫(xiě)個(gè)俄羅斯方塊6. JAVA抽象類(lèi)及接口使用方法解析7. IntelliJ IDEA安裝插件的方法步驟8. python基于tkinter制作無(wú)損音樂(lè)下載工具(附源碼)9. XML基本概念XPath、XSLT與XQuery函數(shù)介紹10. vue之elementUi的el-select同時(shí)獲取value和label的三種方式
