主頁 > 知識(shí)庫 > Django視圖類型總結(jié)

Django視圖類型總結(jié)

熱門標(biāo)簽:百度AI接口 企業(yè)做大做強(qiáng) Win7旗艦版 呼叫中心市場需求 硅谷的囚徒呼叫中心 語音系統(tǒng) 電話運(yùn)營中心 客戶服務(wù)

在對(duì)Django的視圖有所了解后,我們進(jìn)一步對(duì)視圖的分類進(jìn)行討論。視圖有兩種類型,劃分為基于功能的視圖和基于類的視圖,兩種視圖在功能和使用上各有不同。我們需要對(duì)它們進(jìn)行學(xué)習(xí),并能夠分清這兩種視圖的不同之處。下面我們就Django視圖的類型帶來詳解。

1、基于功能的視圖

基于函數(shù)的視圖是使用python中的函數(shù)編寫的,該函數(shù)以HttpRequest對(duì)象作為參數(shù)并返回HttpResponse對(duì)象?;诠δ艿囊晥D通常分為4種基本策略,即CRUD(創(chuàng)建,檢索,更新,刪除)。CRUD是用于開發(fā)的任何框架的基礎(chǔ)。

# 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、基于類的視圖

基于類的視圖提供了一種將視圖實(shí)現(xiàn)為Python對(duì)象而非函數(shù)的替代方法。與基于函數(shù)的視圖相比,基于類的視圖更易于管理。

from django.views.generic.list import ListView
from .models import GeeksModel
class GeeksList(ListView):
  # specify the model for list view
model = GeeksModel

以上就是Django視圖的類型,大家對(duì)基礎(chǔ)的內(nèi)容有所掌握后,可以動(dòng)手嘗試下代碼部分的運(yùn)行,加深對(duì)兩種不同視圖的理解。

內(nèi)容擴(kuò)展:

ListView

在我們的博客應(yīng)用中,有幾個(gè)視圖函數(shù)是從數(shù)據(jù)庫中獲取文章(Post)列表數(shù)據(jù)的:

blog/views.py

def index(request):
  # ...

def archive(request, year, month):
  # ...

def category(request, pk):
  # ...

def tag(request, pk):
  # ...

這些視圖函數(shù)都是從數(shù)據(jù)庫中獲取文章(Post)列表,唯一的區(qū)別就是獲取的文章列表可能不同。比如 index 獲取全部文章列表,category 獲取某個(gè)分類下的文章列表。

到此這篇關(guān)于Django視圖類型總結(jié)的文章就介紹到這了,更多相關(guān)Django視圖有哪些類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

標(biāo)簽:濟(jì)南 山西 山西 安康 海南 喀什 崇左 長沙

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django視圖類型總結(jié)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266