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

这篇具有很好参考价值的文章主要介绍了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 
  email
  password   
  groups
  user_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_name
  3  HttpRequest.user.short_name()  注意:方法的圆括号在templates标签中必需省略!!
 获取first_name
  4  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的字典的表现形式


源码等资料获取方法

Django_视图中的request对象详解(八),Django,django,数据库,sqlite,测试开发,程序员,编程,python

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

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

 文章来源地址https://www.toymoban.com/news/detail-547509.html

 

到了这里,关于Django_视图中的request对象详解(八)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Django基础入门⑫:Django 对象查询详解,分组聚合

    🏘️🏘️个人简介:以山河作礼。 🎖️🎖️: Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主,CSDN内容合伙人 🎁🎁:Web全栈开发专栏:《Web全栈开发》免费专栏,欢迎阅读! 🎁🎁: 文章末尾扫描二维码可以加入粉丝交流群,不定期免费送书。 F对象查询与

    2024年02月12日
    浏览(44)
  • 【Python】【进阶篇】39、Django F对象和Q对象查询详解

    F对象查询与Q对象查询,刚看到大家一定会感到很陌生,其实它们也是 Django 提供的查询方法,而且非常的简单的高效,对于一些特殊的场景需求应用起来非常的合适,在本节我们将对这两种查询方法进行讲解,帮助大家掌握它们的使用方法以及适合应用的场景。 F对象主要用

    2024年02月05日
    浏览(29)
  • django对数据库中的表进行重新生成

    删除数据库中的表 删除项目中migrations包下的初始化文件 进入到manage.py目录下执行命令 python manage.py makemigrations 执行完上述命令之后,再执行命令 python manage.py migrate 就可以啦 最后执行 python manage.py runserver 运行我们的Django项目 关于详细的数据表生成见博文:https://blog.csdn.n

    2024年02月16日
    浏览(36)
  • Django如何删除数据库表中的数据【不断积累】

    这篇博客积累Django的数据库常用删除方法。 假设有表模型Author定义如下: Django 默认为每个模型添加一个名为 id 的自增主键列,用于唯一标识每条记录。因此,可以使用该 id 值来删除指定的记录。 下面是使用 id 值删除记录的示例代码: 在这个示例中,我们首先指定要删除

    2024年02月13日
    浏览(42)
  • Python Django 之连接 Mysql 数据库详解

    博客:https://blog.csdn.net/qq_34745941/article/details/122549376 若已安装,请忽略。 主要使用的文件如图 若 pip 安装失败,可进入 Python 官方库中下载 whl 文件,操作可参考: 博客:https://blog.csdn.net/qq_34745941/article/details/106341898 在 settings.py 中,配置 Mysql 的连接串 扩展: Django 也支持其

    2024年02月04日
    浏览(43)
  • 使用Django数据库模型中的ForeignKey()形成数据表记录的父子层次结构

    可以把ForeignKey()的第1个参数设置为值 “self” 实际形成数据表记录的父子层次结构。 下面是一个简单的实例: 在文件 E:Python_projectP_001myshop-testmyshopapp1models.py 中写入下面的代码: 启动数据库… 然后执行数据库迁移指令: 接下来在文件 E:Python_projectP_001myshop-testmyshop

    2024年02月16日
    浏览(52)
  • 详解数据库中的索引和视图

    摘要: 索引就是数据表中数据和相应的存储位置的列表,利用索引可以提高在表或视图中的查找数据的速度。 本文分享自华为云社区《数据库开发指南(六)索引和视图的使用技巧、方法与综合应用》,作者: bluetata 。 索引就是数据表中数据和相应的存储位置的列表,利用

    2024年02月11日
    浏览(40)
  • Django中数据库模型中的DecimalField字段和IntegerField字段有何区别?

    在Django的数据库模型中, DecimalField 和 IntegerField 是两种不同的字段类型,用于存储数字数据。它们的主要区别在于支持的数据范围和精度。 IntegerField 是用于存储整数值的字段类型。它可以存储包含正数、负数和零在内的整数值。 IntegerField 的取值范围是由所使用的数据库系

    2024年02月16日
    浏览(25)
  • Django基础讲解-路由控制器和视图(Django-02)

    参考链接: Django源码阅读:路由(二) - 知乎 Route路由, 是一种映射关系!路由是把客户端请求的  url路径与视图进行绑定  映射的一种关系。 这个/timer通过路由控制器最终匹配到myapp.views中的视图函数 timer 。 在django中所有的路由最终都被保存到一个变量 urlpatterns , urlpatt

    2024年02月07日
    浏览(21)
  • Django的数据库模型迁移命令makemigrations和migrate是否会导致数据库中的数据丢失?

    我们知道,如果在Django的文件models.py中写好了数据库模型,要生成对应的数据库,需要执行下面两条命令: 其中命令 makemigrations 是生成迁移执行文件,命令 migrate 是执行迁移命令。 那么如果修改了数据库模型文件models.py的内容,比如新增了一张表,那么是否会造成原来数据

    2024年02月12日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包