1. 程式人生 > >Django視圖views--白話聊Django系列

Django視圖views--白話聊Django系列

lap views 可用 int 處理方法 文件名 數據 信息 需要

技術分享

  繼續看上圖,講完控制器後,我們接下來看看視圖部分

  客戶發來請求,首先經過控制器,然後到達視圖,所以視圖負責接收請求和作出響應,所以在視圖裏只需要關註兩個:HttpRequest和HttpResponse,只要關註這兩個對象的使用方法,其中作出響應的render本質上也是調用了HttpResponse

  HttpRequest:

  1.path 請求頁面的全路徑,不包括域名

  2.method 前端數據提交過來的方式,大寫,“GET” “POST”

  3.GET get請求字典信息

  4.POST post請求字典信息

  5.FILES 上傳文件 字典信息 {‘filename’:“xxx”,‘content_type’:“xxx”,“content”:‘xxx’}

  6.其他的cookie,,,在後面組件會講到,這裏就不講了

# path:       請求頁面的全路徑,不包括域名
#
# method:     請求中使用的HTTP方法的字符串表示。全大寫表示。例如
#
#                    if  req.method=="GET":
#
#                              do_something()
#
#                    elseif req.method=="POST":
#
#                              do_something_else()
#
# GET:         包含所有HTTP GET參數的類字典對象
#
# POST:       包含所有HTTP POST參數的類字典對象
#
#              服務器收到空的POST請求的情況也是可能發生的,也就是說,表單form通過
#              HTTP POST方法提交請求,但是表單中可能沒有數據,因此不能使用
#              if req.POST來判斷是否使用了HTTP POST 方法;應該使用  if req.method=="POST"
#
#
#
# COOKIES:     包含所有cookies的標準Python字典對象;keys和values都是字符串。
#
# FILES:      包含所有上傳文件的類字典對象;FILES中的每一個Key都是<input type="file" name="" />標簽中                     name屬性的值,FILES中的每一個value同時也是一個標準的python字典對象,包含下面三個Keys:
#
#             filename:      上傳文件名,用字符串表示
#             content_type:   上傳文件的Content Type
#             content:       上傳文件的原始內容
#
#
# 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對象來說,是由django自動創建的,但是,HttpResponse對象就必須我們自己創建。每個view請求處理方法必須返回一個HttpResponse對象。

  HttpResponse:

  1.render(請求對象,渲染模板,參數)

  2.render_to_response(渲染模板,參數) 和render相比,不用傳請求對象

  3.redirect 頁面跳轉

  4.locals 可以獲取函數所有的變量,獲取的後可以當做參數直接傳入到模板進行渲染

def money(req,f):
    print(f)
    fff = f
    #渲染
    # return render(req,‘index.html‘,locals())
    # return render_to_response(‘index.html‘,locals())
    #跳轉
    return redirect(‘www.baidu.com‘,locals())

  註意:渲染給前端傳值的時候,傳字典

Django視圖views--白話聊Django系列