HttpRequest对象常用参数介绍,以及前端不同请求方式(http方法/Content-Type类型)对应的参数获取方式。

一、HttpRequest对象

django请求对象的详细参数以及实现方式可以在django.http.request查看源码具体分析,也可以查看官方文档https://docs.djangoproject.com/en/3.0/ref/request-response/

1.属性介绍

(1) request.scheme

请求的协议种类(http/https)

(2) request.path

请求页面的完整路径(get_full_path()在path的基础上还有查询条件)

(3) request.method

请求使用的http方法(POST,GET,DELETE,PUT...)

(4) request.content_type

请求的MIME类型

(5) request.GET/request.POST

get/post请求中的所有参数,类似于字典的对象

(6) request.COOKIES

请求包含的cookie字典

(7) request.FILES

上载文件的类字典对象

(8) request.headers(Django2.2新功能)

获取请求headers里面的内容,不区分大小写,类似字典的对象

request.headers["Cotent-Length"]  请求报文中实体主体的字节大小

request.headers["Content-Type"]  请求的MIME类型

request.headers["User-Agent"]  请求的用户代理

(9) request.META

包含所有HTTP头部信息的字典

  • CONTENT_LENGTH –请求正文的长度(以字符串形式)
  • CONTENT_TYPE –请求正文的MIME类型
  • HTTP_ACCEPT –响应可接受的内容类型
  • HTTP_ACCEPT_ENCODING –响应的可接受编码
  • HTTP_ACCEPT_LANGUAGE –可接受的响应语言。
  • HTTP_HOST –客户端发送的HTTP Host标头
  • HTTP_USER_AGENT –客户端的用户代理字符串。
  • REMOTE_ADDR –客户端的IP地址。
  • REMOTE_HOST –客户端的主机名
  • SERVER_NAME –服务器的主机名
  • SERVER_PORT –服务器的端口(以字符串形式)
  • SERVER_PROTOCOL –http协议版本(HTTP/1.1)

(10) request.user

当前登录用户的实例

(11) request.session

代表当前会话的可读可写,类似于字典的对象(删除用户登录的session,request.session.delete(session_key) )

2.方法介绍

(1) request.get_host()

获取主机域名或者IP加端口号

(2) request.get_port()

请求端口号

(3) request.is_secure()

如果使用的是Https,则返回True,表示连接是安全的

 (4) request.get_full_path()

带有请求参数的完整path

二、请求参数获取

1.content-type为application/json(消息主体是序列化后的json字符串)

如果当前端请求的content-type为json字符串的时候,django需要通过json.loads(request.body)来获取请求体里面的参数

2.content-type为application/x-www-form-urlencode(数据被编码为key/value,这是标准的编码格式)

(1)当请求方式为get/post

当请求方式为post/get的时候,可以直接通过request.GET.get()/request.POST.get()来直接获取请求的参数

(2)当请求方式为delete/put/patch/options...

当请求方式不为get/post的时候,在获取前端请求的参数,需要把request.body转化为QueryDict对象,然后通过get方法获取想要的参数即可(QueryDict(request.body).get()

Django中HttpRequest常用参数介绍的更多相关文章

  1. Django中的常用字段类型与参数

    Django中的常用字段类型 1. 数值型 以下都是数值相关的,比如AutoField,它在MySQL中的类型为int(11),而BooleanField在MySQL中对应的类型是tinyint(1) ...

  2. Apache中 RewriteRule 规则参数介绍

    Apache中 RewriteRule 规则参数介绍 摘要: Apache模块 mod_rewrite 提供了一个基于正则表达式分析器的重写引擎来实时重写URL请求.它支持每个完整规则可以拥有不限数量 ...

  3. Linux下查看某个进程打开的文件数-losf工具常用参数介绍

    Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux操作系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还 ...

  4. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

  5. htaccess文件中RewriteRule 规则参数介绍

    .htaccess 文件 <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d Rew ...

  6. Linux操作系统的文件查找工具locate和find命令常用参数介绍

    Linux操作系统的文件查找工具locate和find命令常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.非实时查找(数据库查找)locate工具  locate命 ...

  7. Production环境中iptables常用参数配置

    production环境中iptables常用参数配置 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我相信在实际生产环境中有很多运维的兄弟跟我一样,很少用到iptables的这个 ...

  8. Linux系统IO分析工具之iotstat常用参数介绍

    Linux系统IO分析工具之iotstat常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 1>.安装iostat [root@flume115 ~]# yum - ...

  9. ulimit常用参数介绍

    ulimit常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. ulimit 用于限制 shell 启动进程所占用的资源,支持以下各种类型的限制:所创建的内核文件的大小.进 ...

随机推荐

  1. dvwa学习之七:SQL Injection

    1.Low级别 核心代码: <?php if( isset( $_REQUEST[ 'Submit' ] ) ) { // Get input $id = $_REQUEST[ 'id' ]; ...

  2. CF1324F Maximum White Subtree 题解

    原题链接 简要题意: 给定一棵树,每个点有黑白两种颜色:对每个节点,求出包含当前节点的连通图,使得白点数与黑点数差最小.输出这些值. F题也这么简单,咳咳,要是我也熬夜打上那么一场...可惜没时间打啊 ...

  3. mysql-8.0.19-winx64下载

    mysql-8.0.19-winx64 下载链接 提取码:m7qp

  4. NOI ONLINE 入门组 魔法 矩阵快速幂

    做了这道题我才发现NOI入门组!=NOIP普及组 题目链接 https://www.luogu.com.cn/problem/P6190 题意 给出一张有向图,你有K次机会可以反转一条边的边权,即让它 ...

  5. 巴什博弈 HDU-1846

    描述:一堆石子有 n 个 ,两个人开始轮流取,每人最多取m个,最少取1个,最后一个将石子取完的是赢家. 思路:对于先手来说,如果有(m+1)个石子,先手取 k 个,后手就可以取 m+1-k 个,所以有 ...

  6. HDU - 1166 树状数组模板(线段树也写了一遍)

    题意: 汉语题就不说题意了,用到单点修改和区间查询(树状数组和线段树都可以) 思路: 树状数组的单点查询,单点修改和区间查询. 树状数组是巧妙运用二进制的规律建树,建树就相当于单点修改.这里面用到一个 ...

  7. Python学习笔记:String类型所有方法汇总

    # 按字母表熟悉下string中的方法# A B C D E F G H I J K L M N O P Q R S T U V W X Y Z# 标红的为常用重点的方法!! str = " ...

  8. docker-compose搭建redis哨兵集群

    头脑风暴 出于学习目的,您可以很轻松地在docker环境下运行redis的单个实例,但是如果您需要在生产环境中运行它,那么必须将Redis部署为HA(High Avaliable)模式. Redis ...

  9. D - 渣渣仰慕的爱丽丝 HDU - 6249(背包问题变形)

    爱丽丝喜欢集邮.她现在在邮局买一些新邮票. 世界上有各种各样的邮票;它们的编号是1到N.但是,邮票不是单独出售的;必须成套购买.有M套不同的邮票可供选择; 第i套包括编号从li到ri的邮票 .同一枚邮 ...

  10. 华为五年自动化测试工程详细解说:unittest单元测试框架

    一.单元测试框架说明 ​ 单元测试是指在编程中,针对程序模块的最小单元(类中的方法)进行正确性检验的测试工作.python+selenium自动化测试中通常使用unittest或者pytest作为单元 ...