亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python全棧開發(fā)基礎知識學習——Django框架(二)

系統(tǒng) 1903 0

Django框架(二)

    • 請求和響應對象
      • HttpRequest對象
      • HttpResponse對象

python全棧開發(fā)基礎知識學習——Django框架(二)_第1張圖片

本博文主要了解的是MTV模型中的 View(視圖) ,主要負責業(yè)務邏輯,并在適當?shù)臅r候調(diào)用Model和Template。

請求和響應對象

Django使用請求和響應對象來通過系統(tǒng)傳遞狀態(tài)。

當請求頁面時,Django創(chuàng)建一個HttpRequest包含有關請求的元數(shù)據(jù)的對象。然后Django加載適當?shù)囊晥D,將HttpRequest第一個參數(shù)傳遞給view函數(shù)。每個視圖都負責返回一個HttpResponse對象。

本文介紹了 模塊中定義的API HttpRequest和 HttpResponse對象django.http。


HttpRequest對象

屬性 描述
HttpRequest.scheme 表示請求方案(http或https 通常)的字符串。
HttpRequest.body 原始HTTP請求主體作為字節(jié)串,例: b’name=jie&sex=man’,它能夠獲取表單數(shù)據(jù)
HttpRequest.path 表示所請求頁面的完整路徑的字符串,不包括方案或域。例:/register/
HttpRequest. get_full_path() 表示所請求頁面的完整路徑的字符串,包括get方法取得的表單數(shù)據(jù)
HttpRequest.method 表示請求中使用的HTTP方法的字符串。其返回值是 大寫的
HttpRequest.encoding 表示用于解碼表單提交數(shù)據(jù)的當前編碼的字符串(或者None)您可以寫入此屬性以更改訪問表單數(shù)據(jù)時使用的編碼。任何后續(xù)屬性訪問(例如從GET或讀取POST)都將使用新encoding值。如果您知道表單數(shù)據(jù)不在DEFAULT_CHARSET 編碼中,則非常有用。
HttpRequest.GET 類似字典的對象,包含所有給定的HTTP GET參數(shù)。
HttpRequest.POST 類似字典的對象,包含所有給定的HTTP POST參數(shù),前提是請求包含表單數(shù)據(jù)。如果您需要訪問請求中發(fā)布的原始或非表單數(shù)據(jù),請通過該HttpRequest.body屬性訪問該數(shù)據(jù) 。服務器收到空的POST請求的情況也是可能發(fā)生的,也就是說,表單form通過HTTP POST方法提交請求,但是表單中可能沒有數(shù)據(jù),因此不能使用 if req.POST來判斷是否使用了HTTP POST 方法;應該使用 if req.method=="POST"
HttpRequest.COOKIES 包含所有cookie的字典。鍵和值是字符串。
HttpRequest.FILES 包含所有上傳文件的類字典對象;FILES中的每一個Key都是標簽中 name屬性的值,F(xiàn)ILES中的每一個value同時也是一個標準的python字典對象,包含下面三個Keys:1. filename: 上傳文件名,用字符串表示;2.content_type: 上傳文件的Content Type;3. content: 上傳文件的原始內(nèi)容
user 是一個django.contrib.auth.models.User對象,代表當前登陸的用戶。如果訪問用戶當前沒有登陸,user將被初始化為django.contrib.auth.models.AnonymousUser的實例。你可以通過user的is_authenticated()方法來辨別用戶是否登陸:if req.user.is_authenticated();只有激活Django中的AuthenticationMiddleware時該屬性才可用
session 唯一可讀寫的屬性,代表當前會話的字典對象;自己有激活Django中的session支持時該屬性才可用。
HttpRequest.headers 一個不區(qū)分大小寫的類似dict的對象,它提供對請求中所有HTTP加前綴的標題(加號Content-Length和Content-Type)的訪問。

HttpResponse對象

對于HttpRequest對象來說,是由django自動創(chuàng)建的,但是,HttpResponse對象就必須我們自己創(chuàng)建。每個view請求處理方法必須返回一個HttpResponse對象。

HttpResponse類在django.http.HttpResponse

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

方法 描述
render()以及render_to_response() 頁面渲染
redirect(“路徑”) 頁面跳轉(zhuǎn)
locals() 可以直接將函數(shù)中所有的變量傳給模板

render和redirect的區(qū)別:
render 返回頁面內(nèi)容(渲染變量到模板中),并且沒有發(fā)送第二次請求,不會修改URL的地址。
redirect 發(fā)送了第二次請求,是個跳轉(zhuǎn)函數(shù),而且會返回302的狀態(tài)碼。

模板對象調(diào)用render方法,將context對象加載渲染到template模板對象中,得到的結(jié)果是一個HTML文檔。

            
              -----------------------------------url.py

 url(r"login",   views.login),
 url(r"jie_back",   views.jie_back),

-----------------------------------views.py
def login(req):
    if req.method=="POST":
        if 1:
	        name="jie"
	        
            # return redirect("/jie_back/")
            return render(req,"my backend.html",locals())

    return render(req,"login.html",locals())


def jie_back(req):

    name="杰"

    return render(req,"my backend.html",locals())

-----------------------------------login.html


              

姓名

性別

郵箱

-----------------------------------my backend.html

用戶{{ name }}你好

這個示例中,我們要測試 return redirect("/jie_back/") return render(req,"my backend.html",locals())
的區(qū)別,url是否發(fā)生了變化.


更多文章、技術交流、商務合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 99秒拍福利大尺度视频 | 欧美日韩三级 | 日韩黄网 | 欧美一a一片一级一片 | 四虎国产精品永久免费网址 | 四虎新网站 | 一级欧美在线的视频 | 羞羞网站在线看 | 伊人久久成人爱综合网 | 日韩你懂得 | 毛片女人十八以上观看 | 午夜狠狠干 | 99视频在线观看免费 | 婷婷色综合久久 | 国产成人精品2021欧美日韩 | 伊人色综合一区二区三区 | 久热福利视频 | 欧美日韩一区二区高清免费视频 | 久久综合影院 | 日韩国产欧美 | 日韩欧美一区二区三区不卡 | 97欧美精品一区二区三区 | 国产视频久久 | 久久久久国产一级毛片高清版 | 男女一级特黄a大片 | 亚洲免费二区三区 | 免费视频不卡一区二区三区 | 草视频在线观看 | 久久www免费人成看国产片 | 午夜私人影院在线观看 | 第九色激情 | 大胆国模一区二区三区伊人 | 国产高清一区 | 国产精品www | 国产美女流白浆的免费视 | 天天草夜夜骑 | 国产精品日本一区二区在线看 | 亚洲一区二区三 | 九九99香蕉在线视频免费 | 国产福利在线免费观看 | 中文字幕日韩一区二区 |