axios 前端与 Django 后端的 POST 交互
背景
自己在写一些油猴脚本,前端需要用 JS,后端是自己的服务,是用 Python 的 Django 框架完成的。
油猴脚本中需要通过 POST 方法,向后端传一些数据,所以前端我用的是 axios 库,后端需要用 Django 处理 POST 数据。
关于跨域名的问题,可以参考我的另一篇文章 Django 跨站请求伪造(csrf)防御——解决 POST 请求 403 问题
关于 POST 请求
POST 请求有多种类型,在 header 中的 Content-Type 中进行了定义。
Content-Type | 描述 |
---|---|
application/json | 用于发送 JSON 格式的数据,axios 默认使用该格式 |
application/x-www-form-urlencoded | 用于提交表单数据,不支持传输文件,Django 文档中主要描述的是这种类型 |
multipart/form-data | 用于发送文件或同时发送文本数据和二进制数据 |
text/plain | 用于发送纯文本内容,不常用 |
application/xml | 用于发送或接收 XML 格式的数据,不常用 |
常用 POST 请求对应的发起与接收代码示例
application/json
类型
axios 发起,也是 axios 默认发起的 POST 请求时的类型:
data = { key: 'value'
}
headers = {'Content-Type': 'application/json'
}axios.post('url', data,{headers: headers
})
.then(function (response) {// 处理成功响应console.log(response.data);
})
.catch(function (error) {// 处理错误console.error(error);
});
Django 处理:
from django.http import JsonResponse
import jsondef my_json_post_view(request):if request.method == 'POST':data = json.loads(request.body) # 解析JSON数据if 'key' in data.keys():# 处理数据...return JsonResponse({'message': f' key 的内容是 {data["key"]}'})
application/x-www-form-urlencoded
类型
axios 发起:
data = { key: 'value'
}
headers = {'Content-Type': 'application/x-www-form-urlencoded'
}axios.post('url', data, {headers: headers
})
.then(function (response) {// 处理成功响应console.log(response.data);
})
.catch(function (error) {// 处理错误console.error(error);
});
Django 处理:
def my_form_post_view(request):if request.method == 'POST':# 访问表单数据value = request.POST['key']# 处理数据...return HttpResponse('处理成功') # 或者返回其他类型的响应
multipart/form-data
类型
嫌麻烦的,可以不用这个类型,因为我们可以偷懒一点,把文件进行 base64 编码,之后在 Django 后端的代码里进行 Base64 解码即可
axios 发起:
const formData = new FormData(); // 创建 FormData 实例
formData.append('file', fileInput.files[0]); // 添加文件字段和值(fileInput 是你的文件输入元素)
formData.append('textField', 'some text'); // 添加其他字段和值(如果需要的话)headers = {'Content-Type': 'multipart/form-data'
}axios.post('url', formData, {headers: headers
})
.then(function (response) {// 处理成功响应console.log(response.data);
})
.catch(function (error) {// 处理错误console.error(error);
});
Django 处理:
from django.core.files.uploadhandler.upload_handlers import upload_to_save_object
import osdef my_file_upload_view(request):if request.method == 'POST':uploaded_file = request.FILES['file'] # 获取上传的文件对象text_field = request.POST['textField'] # 获取其他字段# 保存文件到服务器等操作...return HttpResponse('文件上传成功') # 返回响应
相关文章:
axios 前端与 Django 后端的 POST 交互
背景 自己在写一些油猴脚本,前端需要用 JS,后端是自己的服务,是用 Python 的 Django 框架完成的。 油猴脚本中需要通过 POST 方法,向后端传一些数据,所以前端我用的是 axios 库,后端需要用 Django 处理 P…...
数据结构常用术语
一. 常见术语 数据相关 英文术语中文术语Data数据Data element数据元素Data item数据项Data structure数据结构Logical structure逻辑结构Data type数据类型 指针与存储 英文术语中文术语Pointer指针Sequential storage structure顺序存储结构Linked storage structure链状…...
Flask 轻松上手:从零开始搭建属于你的Web应用
引言 随着互联网技术的发展,Web应用程序的需求日益增长。对于开发者来说,选择一个合适的框架至关重要。Flask以其简洁的设计、高度的可定制性和对各种扩展的良好支持,成为了很多项目的基础。无论你是初学者还是有经验的开发者,掌…...

[MyBatis-Plus]快速入门
介绍 MyBatis-Plus是MyBatis的好朋友, 与MyBatis配合, 实现开发效率的提高 官网: 特点: 润物细无声: 只做增强不做改变, 引入它不会对现有工程产生影响, 如丝般顺滑效率自上: 只需简单配置, 即可快速进行单表CRUD, 从而节省大量时间功能丰富: 代码生产, 自动分页, 逻辑删除, …...

单例模式和读者写者问题
文章目录 10. 线程安全的单例模式10.1 什么是设计模式10.2 什么是单例模式10.3 单例模式的特点10.4 饿汉方式和懒汉方式10.5 单例模式的线程池 11. STL和智能指针的线程安全 问题11.1 STL中的容器是否是线程安全的?11.2 智能指针是否是线程安全的? 12. 其他常见的各种锁13. 读…...

内网wordpress更换IP后无法访问的解决办法
一、现象 一台装有wordpress的台式机,从一个校区移到了另一个校区,更换了IP地址,导致无法正常访问。 二、分析 安装wordpress的时候里面的ip(或域名)都已固定。安装好后,内网通过IP访问&am…...

Spring Boot课程答疑:技术难题一网打尽
4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示: 图4-1系统工作原理…...

云卷云舒【超级数据库】:算力网络时代的云原生数据库
一直关注算力网络,再次分析下移动云的数据库团队,他们在做的一些事情其实比较务实,在推进数据库依托云原生演进到算力网络阶段,这都是在构建一个能够承载无限容量、无感接入、多模融合、智能调度的超级数据库。 未来数据库&#…...

电脑分盘分盘
方案一:使用磁盘管理工具扩展卷功能将未分配磁盘合并到C盘 按WinR输入diskmgmt.msc并按Enter键打开磁盘管理工具。在主界面中右键单击C盘驱动器并选择“扩展卷”,然后按照提示流程操作即可扩展C盘空间。 WinR diskmgmt.msc 注意:虽然系统内置…...
四元数基础知识
背景 四元数是方向的 4 元组表示形式,它比旋转矩阵更简洁。 四元数对于分析涉及三维旋转的情况非常有效。 四元数广泛用于机器人技术、量子力学、计算机视觉和 3D 动画。 您可以在 Wikipedia 上了解有关基本数学概念的更多信息。 您还可以观看由 3blue1brown 制…...

『网络游戏』进入游戏主城UI跳转主城【26】
首先在Unity客户端中创建一个空节点重命名为MainCityWnd 设置父物体为全局 创建空节点钉在左上角作为角色信息UI 在钉子下创建Image 创建脚本:MainCityWnd.cs 编写脚本:MainCityWnd.cs 挂载脚本 创建脚本:MainCitySys.cs 编写脚本:…...

多点低压差分(M-LVDS)线路驱动器和接收器——MS2111
MS2111 是多点低压差分 (M-LVDS) 线路驱动器和接收器。经过 优化,可运行在高达 200Mbps 的信号速率下。所有部件均符合 M LVDS 标准 TIA / EIA-899 。该驱动器的输出支持负载低至 30Ω 的多 点总线。 MS2111 的接收器属于 Type-2 , 可在 -1…...
regexp_split_to_table的作用
regexp_split_to_table 是 PostgreSQL 中的一个函数,用于将一个字符串根据正则表达式进行分割,并将结果返回为一个表格(每个分割后的部分作为一行)。这个函数非常有用,特别是在处理复杂字符串时。 语法 regexp_split…...

【MATLAB】基于RSSI的蓝牙定位程序,4个锚点、二维平面
目录 编辑 商品描述 主要功能 技术细节 适用场景 下载链接 商品描述 这款基于接收信号强度指示(RSSI)原理的蓝牙定位程序,专为需要高效、可靠定位解决方案的开发者和研究人员设计。它能够在二维平面内,通过4个锚点实现对未…...
利用 langchain 和 LLM 来给 PDF 做总结
在网上看到一个PDF, 讲的是 Gstreamer 的的动态管道的构建, 一瞥而过, 没时间细看, 先写个小程序通过 langchain 和 LLM 给它做个快速总结 代码如下 from langchain.document_loaders import UnstructuredPDFLoader from langchain.llms import OpenAI from langchain.chains i…...
props 不能轻易解构,注意maxLength类似这种,不能解构出来
当您从 props 对象中解构 msg 时,msg 变量将会获取到当时的 props.msg 值。解构操作仅仅是将当前值复制到 msg 变量中,它并不会建立响应式连接。因此,当 props.msg 发生变化时,解构出的 msg 变量仍保持其原始值,不会自…...
总结拓展十三:SAP系统采购订单关闭实例分享
1、案例分享 我们集团A基地和B基地存在外包加工业务。A基地向B基地外包采购了多起不同类型的物料,近期有部分外包采购暂停,需要采购关闭未完成交货的采购订单。采购在关闭时出现2类报错问题,向我们IT咨询解决方案。 1)报错类型 …...

内嵌服务器Netty Http Server
内嵌式服务器不需要我们单独部署,列如SpringBoot默认内嵌服务器Tomcat,它运行在服务内部。使用Netty 编写一个 Http 服务器的程序,类似SpringMvc处理http请求那样。举例:xxl-job项目的核心包没有SpringMvc的Controller层,客户端却…...
Maven打包运行,引入三方jar及打包,不导入本地库的方法
Maven打包运行,引入三方jar及打包,不导入本地库的方法 maven、打包、springboot、jar、本地、引入背景 业务系统要对接某硬件,需要用到其三方jar,maven官方仓库没有这个,我也没有maven,又不想mvn install…...

02复写零
复写零 我们先进行异地复写:代码如下 public class Test {public static void main(String[] args) {int []array {1,0,2,3,0,4};duplicateZeros(array);}public static void duplicateZeros(int[] arr) {int [] elemnew int[arr.length];for(int cur0,dest0;des…...

XML Group端口详解
在XML数据映射过程中,经常需要对数据进行分组聚合操作。例如,当处理包含多个物料明细的XML文件时,可能需要将相同物料号的明细归为一组,或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码,增加了开…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

基于Flask实现的医疗保险欺诈识别监测模型
基于Flask实现的医疗保险欺诈识别监测模型 项目截图 项目简介 社会医疗保险是国家通过立法形式强制实施,由雇主和个人按一定比例缴纳保险费,建立社会医疗保险基金,支付雇员医疗费用的一种医疗保险制度, 它是促进社会文明和进步的…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
SQL Server 触发器调用存储过程实现发送 HTTP 请求
文章目录 需求分析解决第 1 步:前置条件,启用 OLE 自动化方式 1:使用 SQL 实现启用 OLE 自动化方式 2:Sql Server 2005启动OLE自动化方式 3:Sql Server 2008启动OLE自动化第 2 步:创建存储过程第 3 步:创建触发器扩展 - 如何调试?第 1 步:登录 SQL Server 2008第 2 步…...
【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?
FTP(File Transfer Protocol)本身是一个基于 TCP 的协议,理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况,主要原因包括: ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

算法打卡第18天
从中序与后序遍历序列构造二叉树 (力扣106题) 给定两个整数数组 inorder 和 postorder ,其中 inorder 是二叉树的中序遍历, postorder 是同一棵树的后序遍历,请你构造并返回这颗 二叉树 。 示例 1: 输入:inorder [9,3,15,20,7…...