Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...
##Django框架图解
##前后端传输数据的编码格式
#前后端传输数据的编码格式1.urlencoded 2.formdata 3.application/json
##From表单和Ajax方式在前端往后端发送文件
form表单默认的编码格式是urlencoded不支持发文件(只能把文件名发过去) 它所对应数据格式 username=jason&password=123request.POST只能解析urlencoded数据格式的数据 formdata django会帮你把文件数据取出来 放入request.FILES里面 专门用来传文件的Ajax默认提交的编码格式也是urlencoded 当用ajax传输json格式的数据时候 django不会做任何处理 数据以二进制形式放在request.body中 你可以手动解码加反序列化拿到对应的字典格式数据Ajax发送json格式数据 $.ajax({ url:'', // 不写默认朝当前页面所在的url地址提交 type:'post', contentType:'application/json',//修改默认的编码格式 data:JSON.stringify({'name':'jason','csrfmiddlewaretoken':'{{ csrf_token }}'}), //将数据修改为json格式 success:function (data) { alert(data) } }) ajax发送文件 利用js内置的FormData对象
def index(request):if request.method == 'POST':print(request.POST)print(request.FILES)# file_obj = request.FILES.get('myfile')# print(file_obj.name) # 查看当前文件对象的文件名#form表单传过来的数据写入服务器本地文件(注意:编码不是默认的urlencoded,而是修改成enctype="multipart/form-data">)# with open(file_obj.name,'wb') as f:# for line in file_obj:# f.write(line)#ajax发过来的数据是以二进制数据单独在request.body中,可进行解码然后序列化得到数据字典格式# print(request.body)# bytes_str = request.body# res = json.loads(bytes_str.decode('utf-8'))# print(res,type(res))return render(request,'index.html')
后端核心代码
<!DOCTYPE html> <html> <head><meta charset="utf-8"><title>Title</title><script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script> </head> <body> {#<form action="" method="post" enctype="multipart/form-data">#} {# {% csrf_token %}#} {# <p>username:<input type="text" name="username"></p>#} {# <p>password:<input type="password" name="password"></p>#} {# <p>image:<input type="file" name="myfile"></p>#} {# <input type="submit">#} {#</form>#}<input type="file" name="myfile" id="d2"> <button id="d1">点我</button><script>$('#d1').click(function () {// 如果用ajax发送文件 需要使用内置对象FormDatavar formData = new FormData(); // 生成一个内置对象// 内置对象formdata既可以传普通的键值对,也可以传文件formData.append('name','jason'); // 普通键值对formData.append('password','123');// 传文件var fileObj = $('#d2')[0].files[0]; // 先获取标签对象 转成原生js对象 通过内置的files方法拿到列表 然后去索引0拿到文件对象formData.append('myfile',fileObj);$.ajax({url:'', // 不写默认朝当前页面所在的url地址提交type:'post',// 注意ajax在发送文件的时候 需要你手动指定两个特殊的参数contentType:false, // 不要用任何编码 使用我formdata自带的编码即可processData:false, // 浏览器不要处理我的数据 是什么就什么data:formData,success:function (data) {alert(data)}})}) </script> </body> </html>
前端代码示例
##补充一下页面清缓存
转载于:https://www.cnblogs.com/liangzhenghong/p/11226088.html
Python Day 67 Dango框架图解(总结)、Wsgiref和uwsgi、前后端传输数据的编码格式、From表单和Ajax方式在前端往后端发送文件、补充一下页面清缓存...相关推荐
- Web框架之Django_07 进阶操作(MTV与MVC、多对多表三种创建方式、前后端传输数据编码格式contentType、ajax、自定义分页器)
阅读目录 一.MVC与MTV 二.多对多表的创建 三.ajax,前后端传输编码格式contentType 四.批量插入数据与自定义分页器 摘要 MTV与MVC 多对多表三种创建方式 ajax ,前后端 ...
- Django框架 之 Form表单和Ajax上传文件
Django框架 之 Form表单和Ajax上传文件 浏览目录 Form表单上传文件 Ajax上传文件 伪造Ajax上传文件 Form表单上传文件 html 1 2 3 4 5 6 7 <h3& ...
- SSM框架下实现form表单提交的方式
实现form表单的提交有多种方式,这里我们主要讲两种常用的. 注:此Demo是在SSM框架下完成的,数据库采用MySQL,关于ssm整合的相关知识,这里不做过多赘述.主要展示表单提交方式,暂不考虑代码 ...
- elementUI框架:表单验证书写方式
验证form,注意prop.rules指定的名字需一致: 也可以单独指定具体某一验证::rules="$rules.Login.userName" 校验方式 this.$refs[ ...
- python表单提交的两种方式_Flask框架学习笔记之表单基础介绍与表单提交方式
本文实例讲述了Flask框架学习笔记之表单基础介绍与表单提交方式.分享给大家供大家参考,具体如下: 表单介绍 表单是HTML页面中负责数据采集功能的部件.由表单标签,表单域和表单按钮组成.通过表单,将 ...
- Python的Django框架中forms表单类的使用方法详解2
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- 自学Python第二十二天- Django框架(一)创建项目、APP、快速上手、请求和响应流程、模板、数据库操作
Django 框架是一个基于 python 的重量级的 web 开发框架,现今很多大公司大项目都是使用 Django 框架.采用了 MVC(model view controller) 的框架模式,p ...
- Python Web开发——Django框架学习
文章目录 Web开发简介 Web应用技术 Web前端开发 Web后端开发 使用 Django 开发后端服务 项目目标 管理员操作 登录界面 客户管理界面 添加客户界面 药品管理界面 添加药品界面 订单 ...
- python的前端和后端_python前端和后端数据交互,tornado框架入门,初学小试牛刀!...
Python前端和后端是如何交互的,怎么用tornado框架快速搭建前端和后端数据交互? 前端与后端的数据交互,最常用的就是GET.POST,比较常用的用法是:提交表单数据到后端,后端返回json 前 ...
最新文章
- 数据库连接池为什么要用threadlocal呢?不用会怎样?
- Delphi 2007体验!
- 被墙怎么搭建安卓开发环境
- mysql游标遍历修改_mysql使用游标遍历数据进行批量针对性更新数据,急求mysql大神解答...
- HDU - 6598 Harmonious Army(最大流最小割)
- 你的工作经验到底值钱吗?
- Java多线程——同步问题
- 【Elasticsearch】elasticsearch shard 分片
- input之question
- 为什么我不再和别人比较了?
- 内联函数的常识性问题
- 计算机显卡驱动全部卸载,显卡驱动如何卸载重装?NVIDIA独立显卡驱动卸载重装的方法...
- linux 笔记本双显示器,Ubuntu设置笔记本电脑双显示器(linux)
- 微软的一道前端面试题
- css画不同角度空心箭头,css – 图像前面的空心箭头
- 【Windows】win10多桌面与多任务
- 有什么哪些便宜的云服务器推荐?
- 开源:全球软件产业四大发展趋势之一(转)
- 【运放学习】:虚短、虚短、虚地、深度负反馈
- 搜索引擎优化(SEO)----关键字