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" }}

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

相关文章

  • Python ftfy 包的使用案例解析

    Python ftfy 包的使用案例解析

    Unicode是一种字符编码标准,用于表示文本中的字符,通过安装 ftfy 软件包,可以在 Python 中使用它提供的函数和工具来处理和修复文本中的 Unicode 问题,从而确保文本在各种应用中的正确性和可靠性,这篇文章主要介绍了Python ftfy包的理解和使用,需要的朋友可以参考下
    2023-05-05
  • 关于Python元祖,列表,字典,集合的比较

    关于Python元祖,列表,字典,集合的比较

    下面小编就为大家带来一篇关于Python元祖,列表,字典,集合的比较。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Django 跨域请求处理的示例代码

    Django 跨域请求处理的示例代码

    本篇文章主要介绍了Django 跨域请求处理的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • 用python打印菱形的实操方法和代码

    用python打印菱形的实操方法和代码

    在本篇文章里小编给大家分享了关于用python打印菱形的实操方法和代码,对此有需要的朋友们可以学习下。
    2019-06-06
  • Python包的版本切换和更新方式

    Python包的版本切换和更新方式

    这篇文章主要介绍了Python包的版本切换和更新方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • PyTorch平方根报错的处理方案

    PyTorch平方根报错的处理方案

    这篇文章主要介绍了PyTorch平方根报错的处理方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-05-05
  • 基于Django ORM、一对一、一对多、多对多的全面讲解

    基于Django ORM、一对一、一对多、多对多的全面讲解

    今天小编就为大家分享一篇基于Django ORM、一对一、一对多、多对多的全面讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python办公自动化之自动化文本翻译详解

    Python办公自动化之自动化文本翻译详解

    这篇文章主要为大家详细介绍了Python办公自动化中自动化文本翻译的相关知识,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-01-01
  • Python实现打印http请求信息

    Python实现打印http请求信息

    这篇文章主要介绍了Python实现打印http请求信息方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • 详解Pandas中stack()和unstack()的使用技巧

    详解Pandas中stack()和unstack()的使用技巧

    当你在处理包含某种序列(例如时间序列数据)的变量的数据集时,数据通常需要进行重塑。Pandas 提供了各种用于重塑 DataFrame 的内置方法。其中,stack() 和 unstack() 是最流行的,本文总结了这两个方法的7种使用技巧,需要的可以参考一下
    2022-03-03

最新评论