Django_视图中的request对象详解(八)

目录

Request

属性

方法

QueryDict

源码等资料获取方法


Request

当URLconf文件匹配到用户输入的路径后,会调用对应的view函数,并创建一个包含请求元数据的 HttpRequest 对象  传入该函数的第一个参数,常用request表示。

HttpRequest实例的属性包含了关于此次请求的大多数重要信息。 除了session外的所有属性都应该认为是只读的.

HttpRequest对象有如下属性或者方法:

属性

1. HttpRequest.scheme

请求的协议,一般为http或者https,字符串格式(以下属性中若无特殊指明,均为字符串格式)

2. HttpRequest.body

http请求的主体,二进制格式。

3. HttpRequest.path

所请求页面的完整路径(但不包括协议以及域名),也就是相对于网站根目录的路径。

4. HttpRequest.path_info

获取具有 URL 扩展名的资源的附加路径信息。相对于HttpRequest.path,使用该方法便于移植。

5. HttpRequest.method

获取该请求的方法,比如: GET   POST .........

6. HttpRequest.encoding

获取请求中表单提交数据的编码。

7. HttpRequest.content_type

获取请求的MIME类型(从CONTENT_TYPE头部中获取)

8. HttpRequest.content_params

获取CONTENT_TYPE中的键值对参数,并以字典的方式表示

9. HttpRequest.GET

返回一个 querydict 对象(类似于字典,本文最后有querydict的介绍),该对象包含了所有的HTTP GET参数

10. HttpRequest.POST

返回一个 querydict ,该对象包含了所有的HTTP POST参数,通过表单上传的所有  字符  都会保存在该属性中。

11. HttpRequest.COOKIES

返回一个包含了所有cookies的字典。

12. HttpRequest.FILES

返回一个包含了所有的上传文件的  querydict  对象。通过表单所上传的所有  文件  都会保存在该属性中。key的值是input标签中name属性的值,value的值是一个UploadedFile对象                                          

13. HttpRequest.META

返回一个包含了所有http头部信息的字典

CONTENT_LENGTH – The length of the request body (as a string).
CONTENT_TYPE – The MIME type of the request body.
HTTP_ACCEPT – Acceptable content types for the response.
HTTP_ACCEPT_ENCODING – Acceptable encodings for the response.
HTTP_ACCEPT_LANGUAGE – Acceptable languages for the response.
HTTP_HOST – The HTTP Host header sent by the client.
HTTP_REFERER – The referring page, if any.
HTTP_USER_AGENT – The client’s user-agent string.
QUERY_STRING – The query string, as a single (unparsed) string.
REMOTE_ADDR – The IP address of the client.
REMOTE_HOST – The hostname of the client.
REMOTE_USER – The user authenticated by the Web server, if any.
REQUEST_METHOD – A string such as "GET" or "POST".
SERVER_NAME – The hostname of the server.
SERVER_PORT – The port of the server (as a string).

14  HttpRequest.session

中间件属性

15  HttpRequest.site

中间件属性

16  HttpRequest.user

中间件属性,表示当前登录的用户。

HttpRequest.user实际上是由一个定义在django.contrib.auth.models 中的  user model  类  所创建的对象。

该类有许多字段,属性和方法。列举几个常用的:        获取更详细信息-->官方文档

1、字段: username    用户名first_name  last_name emailpassword   groupsuser_permissions,is_staff     布尔值,标明用户是否可以访问admin页面is_superuser last_login  上一次登陆时间date_joined     用户创建时间2、属性  is_authenticated   布尔值,标志着用户是否已认证。在django1.10之前,没有该属性,但有与该属性同名的方法。3、方法1  HttpRequest.user.get_username()  注意:方法的圆括号在templates标签中必需省略!!获取username。尽量使用该方法来代替使用username字段2  HttpRequest.user.get_full_name()  注意:方法的圆括号在templates标签中必需省略!!获取first_name和last_name3  HttpRequest.user.short_name()  注意:方法的圆括号在templates标签中必需省略!!获取first_name4  HttpRequest.user.set_password(raw_password)  注意:该方法无法在template标签中使用!!设置密码5  HttpRequest.user.check_password(raw_password)  注意:该方法无法在template标签中使用!!如果raw_password与用户密码相等,则返回True

方法

1  HttpRequest.get_host()

返回请求的源主机。example:  127.0.0.1:8000

2  HttpRequest.get_port()

获取端口

3  HttpRequest.get_full_path()

返回完整路径,并包括附加的查询信息。example:  "/music/bands/the_beatles/?print=true"

4  HttpRequest.bulid_absolute_uri(location)

返回location的绝对uri,location默认为request.get_full_path()。

Example: "https://example.com/music/bands/the_beatles/?print=true"

QueryDict

是一个类似于Python中字典的一种对象,他是Python中字典的子类,所以继承了字典的所有方法,

当然QueryDict对字典的某些方法进行了加工,并补充了一些独特的方法。这里列出部分方法。详情请看: 官方文档 。

1  QueryDict.get(key,default=None)   返回key所对应的value,若key不存在,则返回default的值

2  QueryDict.update(other_dict)   更新

3  QueryDict.values()   列出所有的值

4  QueryDict.items()   列出所有的键值对,若一个key有多个值,只显示最后一个值。

5  QueryDict.pop(key)   删除某个键值对

6  QueryDict.getlist(key)   根据输入的key返回一个Python中的list

7  QueryDict.dict()   返回QueryDict的字典的表现形式


源码等资料获取方法

各位想获取源码的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/14718.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第 353 场LeetCode周赛

A 找出最大的可达成数字 签到题 class Solution { public:int theMaximumAchievableX(int num, int t) {return numt*2;} };B 达到末尾下标所需的最大跳跃次数 动态规划: 定义 p i p_i pi​为跳至 i i i处所需的最大跳跃次数, 有状态转移方程 p i m a x { p j 1 ∣ 0 ≤ j &…

3D 旋转木马

在工作中我们常用到3D装换和3D位移 主要知识点 3D位移:transale3d(x,y,z)3D旋转:rotate3d(x,y,z)透视:perspective3D呈现 transfrom-style 1、 transale3d translform: translform:translateX(100px):仅仅是在x轴上移动translform:transl…

HBuilder:开发者之梦的实现

目录 引言关于HBuilderHBuilder的优点:HBuilder的缺点:HBuilder使用的简单示例总结 Hbuilder 官网 引言 在当今数字化时代,移动应用程序开发已经成为了一个全球热门的领域。伴随着智能手机和移动设备的普及,人们对于移动应用的需求…

python使用代理ip——案例

python爬虫是指使用Python编写的程序,通过网络爬取信息并提取有效数据。它通过模拟浏览器请求,获取网页数据,并通过解析HTML/XML等文档结构,从中提取数据。 Python爬虫常用的库和工具包括: Requests:用于…

UE4/5 GAS技能系统入门

Unreal的GAS技能系统是针对游戏技能管理的一套逻辑封装方案,这套方案考虑面较广,包括了Cooldowns技能冷却、允许多技能同时释放、GameplayTags的使用、特殊的事件触发等,今天就来学习一下。 1.激活插件与C部分配置 1.1 创建测试工程&#x…

【简单认识LVS及LVS-NAT负载均衡群集的搭建】

文章目录 一、LVS群集简介1、群集的含义2、性能扩展方式3、群集的分类4、负载均衡群集架构1、负载均衡的结构 5、三种负载调度工作模式1、NAT模式2、TUN模式3、DR模式 二、LVS虚拟服务器1、Linux Virtual Server简介2、启用LVS虚拟服务3、LVS调度算法(1)…

基于单片机的教室智能照明台灯控制系统的设计与实现

功能介绍 以51单片机作为主控系统;LCD1602液晶显示当前时间、年月日、时分秒、前教室人数;2路红外探头用来感应当前教室进出人数;按键可以设置当前时间、自动手动模式、开启和关闭教室灯光时间;在手动模式下,可以通过按…

【网络】HTTPS协议原理

目录 “加密”相关概念 为什么要加密 常见加密方式 对称加密 非对称加密 HTTPS工作过程探究 方案1-只使用对称加密 方案2-只使用非对称加密 方案3-客户端和服务端双方都使用非对称加密 方案4-非对称加密 对称加密 上述方案问题分析 方案5-证书认证 非对称加密对…

GWIN入门-完整一个程序

GWIN入门-完整一个程序 新建工程 右击工程名,添加.v文件 编写功能文件 /* timescale是Verilog HDL 中的一种时间尺度预编译指令,它用来定义模块的仿真时的时间单位和时间精度。 */`timescale 1ns/1ps module LED(input wire clk

gitlab【安装部署、备份与恢复】

【1】安装依赖 [rootgit ~]# yum -y install install curl opessh-server postfix wget【2】安装软件包 [rootgit ~]# yum -y localinstall gitlab-ce-11.2.3-ce.0.el7.x86_64.rpm 【3】修改配置 [rootgit ~]# grep "^[a-Z]" /etc/gitlab/gitlab.rb external_ur…

JavaWeb学习路线(11)—— Maven延伸

一、分模块设计 (一)概念: 将项目按功能拆分出若干个子模块。 (二)作用: 方便项目管理维护、扩展,也方便模块间相互调用,资源共享。 (三)具体实现 1、抽取…

运维开发面试题第一期

1.tail -f和tail -F的区别是什么? tail -f 根据文件描述符进行追踪,当文件改名或被删除,追踪停止。 tail -F 根据文件名进行追踪,并保持重试,即该文件被删除或改名后,如果再次创建相同的文件名,会继续…