Django 如何从request中获取前端数据

 更新时间:2021年04月23日 10:18:46   作者:何惜戈  
这篇文章主要介绍了Django从request中获取前端数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Django

###request

如果说 urls.py 是 Django 中前端页面和后台程序桥梁,那么 request 就是桥上负责运输的小汽车

可以说后端接收到的来至前端的信息几乎全部来自于requests中。

##request对象的属性

request.META

request.MATE获取的是一个标准的python字典。它包含了所有的HTTP请求信息

1 CONTENT_LENGTH —— 请求的正文的长度(是一个字符串)。

2 CONTENT_TYPE —— 请求的正文的MIME 类型。

3 HTTP_ACCEPT —— 响应可接收的Content-Type。

4 HTTP_ACCEPT_ENCODING —— 响应可接收的编码。

5 HTTP_ACCEPT_LANGUAGE —— 响应可接收的语言。

6 HTTP_HOST —— 客服端发送的HTTP Host 头部。

7HTTP_REFERER —— Referring 页面。

8 HTTP_USER_AGENT —— 客户端的user-agent 字符串。

9 QUERY_STRING —— 单个字符串形式的查询字符串(未解析过的形式)。

10 REMOTE_ADDR —— 客户端的IP 地址。

11 REMOTE_HOST —— 客户端的主机名。

12 REMOTE_USER —— 服务器认证后的用户。

13 REQUEST_METHOD —— 一个字符串,例如"GET" 或"POST"。

14 SERVER_NAME —— 服务器的主机名。

15 SE0RVER_PORT —— 服务器的端口(是一个字符串)

获取请求的源主机:HttpRequest.get_host()

request.scheme

请求的方式,即http或者是https

request.path

请求的路径,这里的路径是指相对路径,也就是说一个登陆后台页面的请求:http://127.0.0.1:8000/admin 的路径是 /admin

获取完整路径(包括参数):HttpRequest.get_full_path()

获取绝对url: HttpRequest.bulid_absolute_uri(location) 此参数默认为完整路径

request.encoding

请求提交的数据的编码方式

request.session

request.session 获取的是一个类似于字典的对象,可以进行读取写入操作,常用来保存一些数据来实现会话跟踪技术。因为 HTTP 是一个无状态,不连续的协议。

如果想让服务器记住当前的访问对象,就需要记录请求者的一些信息来达到这个目的。

# 设置session
request.session["name"] = "root"
# 获取session
name = request.sessin["name"]

!!!说到这里需要提一下,django会默认为session使用json序列化。json序列化只能序列化一些基本数据类型,如数字,字符串,列表等。

所以session不能直接存储对象.可以简单的在settings中添加 SESSION_SERIALIZER = "django.contrib.sessions.serializers.PickleSerializer"

request.COOKIES

与session类似,区别是cookies数据是保存在客户端,session数据是保存在服务端。

相对而言session更安全,cookies在不同的浏览器上保存数据的大小限制也不同。但是,存在即合理。

cooike自有它的好处这里不多说。

# 设置cookies
response.set_cookie('name','root')
# 设置加密cookies
response.set_cookie('passsword','123456',salt='@#$!%^&')
# 获取cookie
request.COOKIES.get("name")
# 获取加密的cookie
request.get_signed_cookie("password",salt="@#$!%^&")

request.method

请求方式 POST/GET…

####下面正式开始获取数据

就是在这里遇见了一些小问题,所以导致我写这篇文章来记录一下

request.body

请求的主体,返回的是一个字符串

request.data

请求的数据部分,返回的是一个字典对象(除此之外,与request.body是很类似的)

request.POST

获取post方式表单中提交的数据

request.POST["username"]
request.POST.get("username")

request.GET

获取get方式表单中或url提交的数据

request.GET["username"]
request.GET.get("username")

补充:django框架下,前端调取数据详解

首先话痨一下,公司服务端使用的是python语言,而我们的后台项目使用的django框架,前端调取数据也是基于框架输出的。下面总结一下django框架下,前端调取数据的各种情况。

在前端页面调取数据,我们最常使用的方式总结为以下几种:

数据直接输出、for循环输出、if判断输出、日期格式化。

下面我们针对每一种情况看看django是怎样输出的

1、数据直接输出

{{ form.deliver_institution }}

2、for循环和if判断结合使用

{% for item in form.newborn_hearing_screening %}
    {% if forloop.first %}
    {% else %}
        {{ item }} 
    {% endif %}
{% endfor %}

3、日期格式化

{{ my_date|date:"Y-m-d" }}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

相关文章

  • python3 cookbook中常遇问题解答

    python3 cookbook中常遇问题解答

    本文主要介绍了python3 cookbook中常遇问题解答,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • python日志模块logbook使用方法

    python日志模块logbook使用方法

    python自带了日志模块logging,可以用来记录程序运行过程中的日志信息。这篇文章主要介绍了python logbook使用方法,需要的朋友可以参考下
    2019-09-09
  • python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解

    python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解

    这篇文章主要介绍了python matplotlib工具栏源码探析三之添加、删除自定义工具项的案例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • 浅谈Pycharm调用同级目录下的py脚本bug

    浅谈Pycharm调用同级目录下的py脚本bug

    今天小编就为大家分享一篇浅谈Pycharm调用同级目录下的py脚本bug,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • python实现数据挖掘中分箱的示例代码

    python实现数据挖掘中分箱的示例代码

    数据分箱(英语:Data binning)是一种数据预处理方法,用于最大限度地减少小观测误差的影响,本文主要为大家介绍了python实现数据分箱的相关知识,感兴趣的可以了解下
    2024-01-01
  • Python实现过迷宫小游戏示例详解

    Python实现过迷宫小游戏示例详解

    这篇文章主要介绍的是基于Python实现一个简单的过迷宫小游戏,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以学习一下
    2021-12-12
  • Python视频剪辑Moviepy库使用教程

    Python视频剪辑Moviepy库使用教程

    这篇文章主要为大家介绍了Python视频剪辑Moviepy库使用教程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Python 异常处理实例详解

    Python 异常处理实例详解

    python提供了两个非常重要的功能(异常处理和断言(Assertions))来处理python程序在运行中出现的异常和错误,你可以使用该功能来捕捉python程序的异常
    2014-03-03
  • Django ORM 多表查询示例代码

    Django ORM 多表查询示例代码

    这篇文章主要介绍了Django ORM 多表查询,本文通过示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-09-09
  • python实现发送邮件

    python实现发送邮件

    这篇文章主要为大家详细介绍了python实现发送邮件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03

最新评论