学习笔记,仅供参考


请求

HTTP请求

  • 根据HTTP标准,HTTP请求可以使用多种请求方法。
  • HTTP1.0定义了三种请求方法:GET,POST和HEAD方法(最常用)
  • HTTP1.1新增了五种请求方法:OPTIONS,PUT,DELETE,TRACE和CONNECT方法。

HTTP1.1请求详述

请求 描述
GET 请求指定的页面信息,并返回实体主体
HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。
数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。
DELETE 请求服务器删除指定的页面。
CONNECT HTTP1.1协议中预留给能够将连接改为管道方式的代理服务器。
OPTIONS 允许客户端查看服务器的性能。
TRACE 回显服务器收到的请求,主要用于测试或诊断。
PUT 从客户端向服务器传送的数据取代指定的文档的内容。

HttpRequest对象

当服务器接收到http协议的请求后,会根据请求数据报文创建HttpRequest对象,视图函数中第一个参数request接受的就是HttpRequest对象,比如:

def page_bunny(request, name, age):html = "Bunny's name is " + name + " and its age is " + agereturn HttpResponse(html)
  • HttpRequest属性

    • path:字符串,表示请求的路由信息
    • method:字符串,表示HTTP请求方法,常用值:‘GET’,‘POST’
    • encoding:字符串,表示提交的数据的编码方式
    • GET: QueryDict查询字典的对象,包含get请求方式的所有数据
    • POST: QueryDict查询字典的对象,包含post请求方式的所有数据
    • FILES:类似于字典的对象,包含所有的上传文件
    • COOKIES:Python字典,包含所有的cookie,键和值都为字符串
    • session:似于字典的对象,表示当前的会话
    • body:字符串,请求体的内容
    • environ:字符串,客户端运行的环境变量信息
    • scheme:请求协议(‘http’/‘https’)
    • path_info:URL字符串
    • request.get_full_path():请求的完整路径
    • request.get_host():请求的主机
    • request.META:请求中的元数据(消息头)
      • request.META[‘REMOTE_ADDR’]:客户端IP地址
      • request.META[‘HTTP_REFERER’]:请求源地址

举个例子

我们在views.py中输入如下代码:

def page_bunny(request, name, age):print("request.path = " + request.path)print("request.method = " + request.method)html = "Bunny's name is " + name + " and its age is " + agereturn HttpResponse(html)

并向http://127.0.0.1:8000/bunny/10/huang/发起请求:

这时我们的请求头为(通过Chrome浏览器中的【检查】【Network】查看):

GET /bunny/10/huang/ HTTP/1.1
Host: 127.0.0.1:8000
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9

我们再看看cmd中的输出(cmd会显示视图函数中print方法要打印的内容):

request.path = /bunny/10/huang/
request.method = GET

可以看见我们的路由为/bunny/10/huang/,请求方式为GET

Django(part7)--请求及HttpRequest对象相关推荐

  1. request对象的常用属性与方法-103.课时103.【Django视图高级】HttpRequest对象讲解(Av61533158,P103)

    获取请求路径 请求全网址,包含查询字符串 获取原生的全网址 常用方法 验证是否是ajax请求

  2. Django请求和响应对象

    Django请求和响应对象 Django 使用请求和响应对象在系统中传递状态. 当一个页面被请求时,Django 会创建一个 HttpRequest 对象,这个对象包含了请求的元数据.然后,Djang ...

  3. django请求与响应(HttpRequest对象和HttpResponse对象)

    HttpRequest对象 服务器接收到http协议的请求后,会根据报文创建HttpRequest对象视图函数的第一个参数是HttpRequest对象在django.http模块中定义了HttpReq ...

  4. Django视图之HttpRequest对象和HttpResponse对象

    五.HttpRequest对象 回想一下,利用HTTP协议向服务器传参有几种途径? 提取URL的特定部分,如/weather/beijing/2018,可以在服务器端的路由中用正则表达式截取: 查询字 ...

  5. 【django】HttpRequest对象

    回想⼀下,利⽤HTTP协议向服务器传参有⼏种途径? a.提取URL的特定部分,如/film/zhangsan/20/,可以在服务器端的路由中⽤正则表达式截取: b.查询字符串(query string ...

  6. Django框架——HttpRequest对象

    目录 1.URL路径参数 2.QueryDict对象 3.查询字符串Query String 4.请求体 5.请求头 6.其他 1.URL路径参数 (1)位置参数:使用正则分组,与视图中的参数一一对应 ...

  7. 【django】HttpRequest对象的属性和路由补充

    文章目录 一.HttpRequest对象的常用属性 1.request.GET:获取查询字符串参数 案例: 特别注意: 2.request.POST:post请求数据,只能获取表单参数 3.reque ...

  8. Django (auth模块、User对象、用户认证、线上-用户认证)

    一.auth模块 django.contrib.auth中提供了许多方法,这里主要介绍其中的三个: authenticate()    提供了用户认证,即验证用户名以及密码是否正确,一般需要usern ...

  9. Django之请求和响应

    所谓请求和响应就是一种对话式或者说应答式的交互过程.请求是值用户使用浏览器通过http协议发送给服务段的数据,响应是值服务端接收到请求后做响应的处理回复给浏览器的数据.常用的方法就是GET,POST, ...

最新文章

  1. 写入缓存策略无法更改_【第1747期】webpack 5 之持久化缓存指南
  2. layoutSubviews什么时候触发调用
  3. elf文件格式实例解析
  4. MSDN WebCast网站全新改版
  5. HTML渐变背景不重复,如何停止重复自身的背景颜色渐变? (css)
  6. (63)Verilog HDL模块例化VHDL模块
  7. poj 3590 The shuffle Problem——DP+置换
  8. 《机器学习实战》学习笔记第七章 —— AdaBoost元算法
  9. Linux命令:tac
  10. 关于全球同服和亚马逊Global Accelerating
  11. 边做边记中航信酒店接口开发
  12. Beer Mugs(思维)
  13. c(RGDyC),cyclo(Arg-Gly-Asp-D-Tyr-Cys),环状RGD多肽系列
  14. 事件委托(事件代理)
  15. JAVA中简单图形界面的创建
  16. IDEA与VsCode两种开发工具的比较
  17. 概率论由相关性求数学期望和方差的公式_概率论与数理统计(马涛)第4章——数学期望与方差.ppt...
  18. matlab图像处理--Otsu阈值分割
  19. GNSS/INS松组合算法原理简介
  20. 信息系统项目管理笔记1-信息化基础知识、服务管理、监理知识

热门文章

  1. pytorch 构建神经网络模型总结
  2. 深度学习(四十二)——深度强化学习(5)PPO, IMPALA, Hierarchical RL, OpenAI
  3. c++调用cplex求解例子_Java调用cplex求解运输问题
  4. php调用linux摄像头,Linux_在Linux操作系统上使用摄像头,我的公家笔记本的摄像头一直 - phpStudy...
  5. python uwsgi_Python Web 程序使用 uWSGI 部署
  6. Day45--js基本小结
  7. angularjs 弹出框 $modal传值
  8. 服务器被攻击怎么办 安全狗来防护
  9. 囚犯生存概率引发的循环思考
  10. mcse 2000 认证介绍