最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django視圖函數(shù)的具體使用

 更新時間:2021年03月23日 10:26:59   投稿:zx  
這篇文章主要介紹了Django視圖函數(shù)的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

視圖是 MTV 設(shè)計模式中的 V 層,它是實現(xiàn)業(yè)務(wù)邏輯的關(guān)鍵層,可以用來連接 M 層與 T 層,起著紐帶般的作用,在《Django MTV和MVC的區(qū)別》中也做了相應(yīng)的介紹,所以它的重要性可想而知。

1. 第一個視圖函數(shù)

在 Django 中,視圖函數(shù)是一個 Python 函數(shù)或者類,開發(fā)者主要通過編寫視圖函數(shù)來實現(xiàn)業(yè)務(wù)邏輯。視圖函數(shù)首先接受來自瀏覽器或者客戶端的請求,并最終返回響應(yīng),視圖函數(shù)返回的響應(yīng)可以是 HTML 文件,也可以是 HTTP 協(xié)議中的 303 重定向。接下來編寫一個簡單的視圖函數(shù):

from django.http import HttpResponse
def Hello_my_django(request):
 return HttpResponse('<html><body>Hello my Django</body></html>')

下面針對以上 3 行代碼做解析:

1)HttpResponse視圖響應(yīng)類型
從 django.http 模塊中導(dǎo)入 HttpResponse,從它簡單的名字我們可以得知,它是一種視圖的響應(yīng)類型。

在HttpResponse對象上擴展的常用方法:

  • - 頁面渲染:render(推薦),render_to_response,
  • - 頁面跳轉(zhuǎn):redirect
  • - locals: 可以直接將對應(yīng)視圖函數(shù)中所有的變量傳給模板

2)視圖函數(shù)參數(shù)request
我們定義了一個名為“Hello_my_django”的函數(shù),Django 規(guī)定了,視圖函數(shù)至少有一個參數(shù),第一個參數(shù)必須是 request,request 是 HttpRequest 請求類型的對象,它攜帶了瀏覽器的請求信息,所以視圖函數(shù)的第一個參數(shù)必須為 request。

當(dāng)請求一個頁面時,Django 創(chuàng)建一個 HttpRequest對象包含原數(shù)據(jù)的請求。然后 Django 加載適當(dāng)?shù)囊晥D,通過 HttpRequest作為視圖函數(shù)的第一個參數(shù)。每個視圖負責(zé)返回一個HttpResponse目標(biāo)。

path:  請求頁面的全路徑,不包括域名
method:  請求中使用的HTTP方法的字符串表示。全大寫表示。例如
     if req.method=="GET":
        do_something()
     elseif req.method=="POST":
        do_something_else()
GET:   包含所有HTTP GET參數(shù)的類字典對象
POST:  包含所有HTTP POST參數(shù)的類字典對象
    服務(wù)器收到空的POST請求的情況也是可能發(fā)生的,也就是說,表單form通過
    HTTP POST方法提交請求,但是表單中可能沒有數(shù)據(jù),因此不能使用
    if req.POST來判斷是否使用了HTTP POST 方法;應(yīng)該使用 if req.method=="POST"
COOKIES:  包含所有cookies的標(biāo)準(zhǔn)Python字典對象;keys和values都是字符串。
FILES:  包含所有上傳文件的類字典對象;FILES中的每一個Key都是<input type="file" name="" />標(biāo)簽中 
   name屬性的值,F(xiàn)ILES中的每一個value同時也是一個標(biāo)準(zhǔn)的python字典對象,包含下面三個Keys:
   filename:  上傳文件名,用字符串表示
   content_type: 上傳文件的Content Type
   content:  上傳文件的原始內(nèi)容
user:  是一個django.contrib.auth.models.User對象,代表當(dāng)前登陸的用戶。如果訪問用戶當(dāng)前
    沒有登陸,user將被初始化為django.contrib.auth.models.AnonymousUser的實例。你
    可以通過user的is_authenticated()方法來辨別用戶是否登陸:
    if req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware
    時該屬性才可用
session: 唯一可讀寫的屬性,代表當(dāng)前會話的字典對象;自己有激活Django中的session支持時該屬性才可用。
META:  一個標(biāo)準(zhǔn)的Python字典包含所有可用的HTTP頭??捎脴?biāo)題取決于客戶端和服務(wù)器,但這里是一些例子:
   CONTENT_LENGTH  – 請求體的長度(一個字符串)。
   CONTENT_TYPE   – 請求體的類型。
   HTTP_ACCEPT   - 為響應(yīng)–可以接受的內(nèi)容類型。
   HTTP_ACCEPT_ENCODING – 接受編碼的響應(yīng)
   HTTP_ACCEPT_LANGUAGE – 接受語言的反應(yīng)
   HTTP_HOST   – 客戶端發(fā)送的HTTP主機頭。
   HTTP_REFERER   – 參考頁面
   HTTP_USER_AGENT  – 客戶端的用戶代理字符串。
   QUERY_STRING   – 查詢字符串,作為一個單一的(分析的)字符串。
   REMOTE_ADDR   – 客戶端的IP地址
   REMOTE_HOST   – 客戶端的主機名
   REMOTE_USER   – 用戶通過Web服務(wù)器的身份驗證。
   REQUEST_METHOD  – 字符串,如"GET"或"POST"
   SERVER_NAME   – 服務(wù)器的主機名
   SERVER_PORT   – 服務(wù)器的端口(一個字符串)。

3)return視圖響應(yīng)
視圖函數(shù)要返回響應(yīng)內(nèi)容,這里的響應(yīng)內(nèi)容是我們用 HTML 標(biāo)簽編寫的,把它作為 HttpResponse 的對象返回給瀏覽器。

2. 視圖函數(shù)執(zhí)行過程

上面視圖函數(shù)的代碼雖然區(qū)區(qū)幾行,但是已經(jīng)充分體現(xiàn)了視圖層的實現(xiàn)過程。 Django 收到請求以后,首先創(chuàng)建一個帶有請求信息的 HttpRequset 對象,將 HttpRequest 的對象 request 作為第一個參數(shù)傳遞給視圖函數(shù),視圖接收參數(shù)后繼續(xù)向下執(zhí)行,然后選擇加載對應(yīng)的視圖,最后返回 HttpResponse 對象給瀏覽器。

通過本節(jié)的介紹,我們應(yīng)該理解 View 視圖函數(shù)的作用,以及視圖函數(shù)的定義過程。

到此這篇關(guān)于Django視圖函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)Django視圖函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • win10從零安裝配置pytorch全過程圖文詳解

    win10從零安裝配置pytorch全過程圖文詳解

    這篇文章主要介紹了win10從零安裝配置pytorch全過程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • python構(gòu)造函數(shù)init實例方法解析

    python構(gòu)造函數(shù)init實例方法解析

    這篇文章主要介紹了python構(gòu)造函數(shù)init實例方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • 總結(jié)Python編程中三條常用的技巧

    總結(jié)Python編程中三條常用的技巧

    這篇文章主要介紹了總結(jié)Python編程中三條常用的技巧,包括JSON格式的轉(zhuǎn)換、else語句的活用和setdefault方法的使用,需要的朋友可以參考下
    2015-05-05
  • python uv包管理小結(jié)

    python uv包管理小結(jié)

    uv?是一個高性能的 Python 包管理工具,它不僅能夠高效地處理包管理和依賴解析,還提供了對 Python 版本管理的支持,本文主要介紹了python uv包管理小結(jié),具有一定的參考價值,感興趣的可以了解一下
    2025-04-04
  • python庫ggpy安裝使用實例(散點圖創(chuàng)建)

    python庫ggpy安裝使用實例(散點圖創(chuàng)建)

    這篇文章主要為大家介紹了python庫ggpy安裝使用實例,如何創(chuàng)建簡單的散點圖及制作帶有趨勢線的散點圖詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2024-01-01
  • python多線程掃描端口(線程池)

    python多線程掃描端口(線程池)

    這篇文章主要為大家詳細介紹了python多線程掃描端口,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • Python中用try-except-finally處理異常問題

    Python中用try-except-finally處理異常問題

    這篇文章主要介紹了Python中用try-except-finally處理異常問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python實現(xiàn)免費音樂下載器

    Python實現(xiàn)免費音樂下載器

    本文主要為大家介紹了通過Python實現(xiàn)的免費音樂下載器,文中的示例代碼講解詳細,對我們的學(xué)習(xí)或工作有一定的幫助,需要的小伙伴可以學(xué)習(xí)一下
    2021-12-12
  • pycharm不以pytest方式運行,想要切換回普通模式運行的操作

    pycharm不以pytest方式運行,想要切換回普通模式運行的操作

    這篇文章主要介紹了pycharm不以pytest方式運行,想要切換回普通模式運行的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Python中用xlwt制作表格實例講解

    Python中用xlwt制作表格實例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于Python中用xlwt制作表格實例講解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2020-11-11

最新評論

略阳县| 湘潭县| 安化县| 即墨市| 岗巴县| 连州市| 临夏市| 高淳县| 阜新| 喀喇| 富裕县| 沙河市| 图们市| 东乌| 都江堰市| 曲周县| 云霄县| 温泉县| 陇川县| 嘉祥县| 得荣县| 申扎县| 镇康县| 鄂托克前旗| 中西区| 乌拉特中旗| 洱源县| 平乐县| 安乡县| 丽江市| 六盘水市| 阳江市| 朝阳区| 忻州市| 关岭| 日照市| 怀化市| 当雄县| 新丰县| 哈尔滨市| 衡南县|