Django視圖views--白話聊Django系列
阿新 • • 發佈:2017-07-15
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系列