Django学习-原生request-response

Request:利用HTTP协议向服务器传参

传参途径:

  • 提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取;
  • 查询字符串(query string),形如key1=value1&key2=value2;
  • 请求体(body)中发送的数据,比如表单数据、json、xml;
  • 在http报文的头(header)中。

请求:
1 URL路径参数:GET


url(r'^weather/([a-z]+)/(\d{4})/$',f)
url(r'^weather/(?P<city>[a-z]+)/(?P<year>\d{4})/$',f)
def weather(request, city, year)


2. 查询字符串Query String: POST+GET

# /qs/?a=1&b=2&a=3
request.GET.get('a')
request.GET.getlist('a')


传入数据:{"a" : 2}

3 请求体(body):POST、PUT、PATCH、DELETE
    3.1 表单类型 Form Data  # text格式

  request.POST.get('a')
         request.POST.getlist('a')

    3.2 非表单类型 Non-Form Data  # 指定格式

        # 获取原始数据 按照格式解析
        json_str = request.body
        json_str = json_str.decode()  # python3.6 无需执行此步
        req_data = json.loads(json_str)
        print(req_data['a'])

4 请求头

 print(request.META['CONTENT_TYPE'])

响应Response: 返回HttpResponse对象或子对象

1 HttpResponse

  response = HttpResponse('itcast python')
    response.status_code = 400
    response['Itcast'] = 'Python'
    return response

2 HttpResponse子类 : 快速设置状态码

HttpResponseRedirect 301
HttpResponsePermanentRedirect 302
HttpResponseNotModified 304
HttpResponseBadRequest 400
HttpResponseNotFound 404
HttpResponseForbidden 403
HttpResponseNotAllowed 405
HttpResponseGone 410
HttpResponseServerError 500

3 JsonResponse : 返回json数据

   # 帮助我们将数据转换为json字符串
    # 设置响应头Content-Type为 application/json
    return JsonResponse({'city': 'beijing', 'subject': 'python'})
    return JsonResponse(json字符串)

4 redirect重定向:重定向到路径

 return redirect('/users/index')

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值