request與HttpResponse

weixin_34402408發表於2018-08-30

request物件
(1).request物件的概念
概念
每一個檢視函式都必須接受一個形參 接受django傳遞過來的請求物件 request也就是在瀏覽器請求的時候 給檢視函式的資料
(2).request物件的建立
伺服器接受使用者的請求後 會自動建立request物件,檢視函式的第一個引數即為request物件
(3).屬性
1.path 獲取請求的路徑
2.method 獲取請求的方法
3.GET獲取get傳參
獲取一個key的值
request.GET.get('key')get方法取值
request.GET['key'] 下標取值
兩種獲取get傳參的區別:使用下標取值,如果值不存在則keyerror,get方法取值如果key不在則執行預設值,沒有預設值則為None
(4)POST獲取post傳遞過來的資料
views.py

# 獲取POST表單傳遞過來的資料
# http://127.0.0.1:8000/form/
def form(req):
      if req.method == 'GET':
            return  render(req,'form.html')
      if req.method == "POST":
            return  HttpRespons(req.POST.get('username'))

url.py

from django.conf.urls import url
from App import views
urlpatterns = [
        url(r'^form/$',views.form),
]

form.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>form表單</h2>
<form action="/form" method="post">
      <p>使用者名稱<input type="text" name="username"></p>
      <p>密碼<input type='password' name='userpass'></p>
      <p><input type='submit'></p>
</form>
</body>
</html>

(5).META獲取所有的header頭資訊

# 獲取所有的header頭資訊
def meta(req):
      print(req.META)
      print(req.META.get('REMOTE_ADDR'))
      values = req.META.items()
       html = []
       for k,v values:
            html.append('<tr><td>{}</td><td>{}</td></tr>'.format(k,v))
       return HttpResponse('<table>%s</table>' % '\n'.join(html))

(6)方法
1.request_full_path()獲取完整的請求路徑
2.request_host獲取主機和埠
3.request.is_ajax是否為ajax請求

HttpResponse響應
概述:給瀏覽器的請求做出響應
(1)相應的方法
HttpResponse()
特點:不進行模板的呼叫,直接響應
例項

def form(req):
      return HttpRespons('form')

屬性
obj = HttpResponse()
1.obj.content設定/獲取內容
2.obj.status_code設定/獲取狀態碼
obj.status_code = 404

12529562-f008a823535616e8.jpg
image

相關文章