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

作者:何惜戈 时间:2023-06-22 06:52:16 

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

以上为个人经验,希望能给大家一个参考。

来源:https://blog.csdn.net/qq_37049781/article/details/79705890

标签:Django,request,前端数据
0
投稿

猜你喜欢

  • Python super( )函数用法总结

    2022-07-09 23:23:10
  • 详解Python牛顿插值法

    2023-03-05 05:58:27
  • python列表数据增加和删除的具体实例

    2021-08-05 15:11:09
  • python操作docx写入内容,并控制文本的字体颜色

    2023-11-25 03:14:33
  • Javascript中作用域的详细介绍

    2024-04-18 10:02:09
  • 使用PyV8在Python爬虫中执行js代码

    2022-05-09 14:33:36
  • python 浮点数四舍五入需要注意的地方

    2021-11-04 04:37:56
  • python提取字典key列表的方法

    2023-02-01 23:35:28
  • Python高级特性之闭包与装饰器实例详解

    2021-09-19 03:17:25
  • Python3将jpg转为pdf文件的方法示例

    2021-06-25 11:31:17
  • Pytorch框架之one_hot编码函数解读

    2023-02-16 11:34:05
  • 利于python脚本编写可视化nmap和masscan的方法

    2021-04-14 11:19:52
  • 介绍Python中几个常用的类方法

    2023-02-10 09:17:49
  • Python制作刷网页流量工具

    2021-10-21 00:23:28
  • go语言中排序sort的使用方法示例

    2023-09-01 00:07:22
  • Mysql给普通分页查询结果加序号实操

    2024-01-16 21:06:07
  • 浅谈django不使用restframework自定义接口与使用的区别

    2023-11-24 09:44:02
  • echarts自定义饼图数据刷新和颜色渲染问题浅析

    2024-04-29 13:21:15
  • JavaScript对象的property属性详解

    2024-05-05 09:22:57
  • Python3 多线程(连接池)操作MySQL插入数据

    2024-01-27 14:32:57
  • asp之家 网络编程 m.aspxhome.com