南京网站建设培训wordpress 热搜词

bicheng/2026/1/19 19:35:50/文章来源:
南京网站建设培训,wordpress 热搜词,大理建设工程招聘信息网站,网站建设 $ 金手指排名效果好目录 一.前后端传输数据的编码格式#xff08;contentType#xff09; 1.form表单 2.编码格式 3.Ajax 4.代码演示 后端 前端HTML 二.Ajax发送JSON格式数据 1.引入 后端 前端 2.后端 接收到的数据为空 解决办法 3.request方法判断Ajax 4.总结 前端在通过ajax…目录 一.前后端传输数据的编码格式contentType 1.form表单 2.编码格式 3.Ajax 4.代码演示 后端 前端HTML 二.Ajax发送JSON格式数据 1.引入 后端 前端 2.后端 接收到的数据为空 解决办法 3.request方法判断Ajax 4.总结 前端在通过ajax请求发送数据的时候一定要注参数修改 数据是真正的JSON格式数据 Django后端不会帮我们处理JSON格式数据需要自己手动处理request.body中的数据 三.Ajax发送文件数据 1.Ajax发送文件数据需要借助js内置对象formdata 前端 后端 发送文件数据的格式 2.结论 Ajax发送文件数据需要利用内置对象FormData 需要指定两个关键性的参数 Django后端能直接自动识别到FormData对象 四.分页 1.前言 2.自定义分页器封装代码 3.后端使用方法 4.前端使用方法 一.前后端传输数据的编码格式contentType 主要研究POST请求数据的编码格式 因为GET请求数据就是直接放在url后面的 可以朝后端发送post请求的方式 form请求ajax请求 1.form表单 前后端传输数据的格式 urlencodedformdatajson 2.编码格式 form表单默认的编码格式是urlencoded 通过查看请求头中的Content-Type参数 text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,image/apng,*/*;q0.8,application/signed-exchange;vb3;q0.7 Accept-Encoding:gzip, deflate, br Accept-Language:zh-CN,zh;q0.9,en;q0.8 Cache-Control:no-cache Connection:keep-alive Content-Length:27 Content-Type:application/x-www-form-urlencoded携带数据格式 username666666password66 Django后端针对urlencoded编码格式的数据会自动帮我们解析封装到request.POST中如果编码格式改为formdata那么针对普通的键值对还是解析到request.POST中而其他文件格式的数据解析到request.FILES中form表单无法发送json格式数据 3.Ajax Accept:*/* Accept-Encoding:gzip, deflate, br Accept-Language:zh-CN,zh;q0.9,en;q0.8 Cache-Control:no-cache Connection:keep-alive Content-Length:31 Content-Type:application/x-www-form-urlencoded; charsetUTF-8默认的编码格式是urlencoded数据格式 usernamedreampassword1314521 Django后端针对urlencoded编码格式的数据会自动帮我们解析封装到request.POST中---username dreampassword123456 4.代码演示 后端 def index(request):if request.method POST:print(request.POST)print(request.FILES)return render(request, index.html)前端HTML form action methodpost enctypemultipart/form-datapusername: input typetext nameusername classform-control/pppassword: input typepassword namepassword classform-control/ppfile: input typefile/ppinput typesubmit classbtn btn-success/ppinput typebutton classbtn btn-danger value按钮 idd1/p /formscript$(#d1).click(function () {$.ajax({url: ,type: POST,data: {username: dream, password: 1314521},success: function (args) {},})}) /script二.Ajax发送JSON格式数据 前后端传输数据的时候一定要保证编码格式数据与真正的数据格式是一致的 1.引入 后端 def ab_json(request):if request.method POST:print(request.POST) #QueryDict: {}return render(request, ab_json.html)前端 button classbtn btn-danger idd1点我/buttonscript$(#d1).click(function () {$.ajax({url: ,type: post,// 前端数据转JSON格式数据 JSON.stringifydata: JSON.stringify({username: dream, password: 521521}),// 不指定参数默认就是 urlencodedcontentType: application/json,success: function (args) {}})}) /script请求标头携带的数据格式 已成功转换为JSON格式 {username:dream,password:521521} 2.后端 接收到的数据为空 def ab_json(request):if request.method POST:print(request.POST) #QueryDict: {}return render(request, ab_json.html)Django 针对JSON格式的数据不会做任何处理 针对JSON格式的数据需要自己手动处理 解决办法 def ab_json(request):print(request.is_ajax()) # Trueif request.method POST:print(request.POST) # QueryDict: {}print(request.body) # 返回的是二进制数据 b{username:dream,password:521521}# 针对JSON格式的数据需要自己手动处理json_bytes request.body# 1方式一先解码 再转换数据格式json_str json_bytes.decode(utf-8)json_dict json.loads(json_str)print(json_dict, type(json_dict)) # {username: dream, password: 521521} class dict# 2方式二json.loads(二进制数据) 内部可以自动解码再反序列化json_dict_loads json.loads(json_bytes)print(json_dict_loads, type(json_dict_loads)) # {username: dream, password: 521521} class dictreturn render(request, ab_json.html)3.request方法判断Ajax request.is_ajax() 返回当前请求是否是ajax请求返回布尔值 print(request.is_ajax()) 正常浏览器网址回车提交的是 GET 请求 - 结果是False 当我们发送ajax请求后 - 结果是True 4.总结 前端在通过ajax请求发送数据的时候一定要注参数修改 // 不指定参数默认就是 urlencoded contentType: application/json,数据是真正的JSON格式数据 发送的数据一定要符合JSON格式 或经过JSON序列化再传输 Django后端不会帮我们处理JSON格式数据需要自己手动处理request.body中的数据 通过Ajax传过来的数据是二进制数据 在request.body中要经过自己的反序列化才能拿到我们想要的数据 三.Ajax发送文件数据 1.Ajax发送文件数据需要借助js内置对象formdata 前端 pusername: input typetext nameusername idd1/p ppassword: input typepassword namepassword idd2/p pfile: input typefile idd3/pbutton idbtn classbtn btn-danger提交/buttonscript// 点击按钮向后端发送普通键值对数据和文件数据$(#btn).on(click, function () {// 1先生成一个内置对象let formDataObj new FormData();// 2支持添加普通的键值对formDataObj.append(username, $(#d1).val());formDataObj.append(password, $(#d2).val());// 3支持添加文件对象 --- 先拿到标签对象 ---- 再拿到文件对象formDataObj.append(myfile, $(#d3)[0].files[0]);// 4基于Ajax将文件对象发送给后端$.ajax({url: ,type: post,// 直接将对象放到data里面即可data: formDataObj,// Ajax发送文件必须添加的两个参数// 不需要使用任何编码 - Django后端能自动识别 formdata 对象contentType: false,// 告诉浏览器不要对我的数据进行任何处理processData: false,success: function (args) {}})}) /script 后端 def ab_file(request):if request.is_ajax():if request.method POST:print(POST::, request.POST)# 普通键值对放在了 request.POST 中# POST:: QueryDict: {username: [dream], password: [666]}print(FILES::, request.FILES)# 文件数据放在了 request.FILES 中# FILES:: MultiValueDict: {myfile: [InMemoryUploadedFile: img.png (image/png)]}return render(request, ab_file.html) 发送文件数据的格式 // 点击按钮向后端发送普通键值对数据和文件数据 $(#btn).on(click, function () { // 1先生成一个内置对象 let formDataObj new FormData();// 2支持添加普通的键值对 formDataObj.append(username, $(#d1).val()); formDataObj.append(password, $(#d2).val());// 3支持添加文件对象 --- 先拿到标签对象 ---- 再拿到文件对象 formDataObj.append(myfile, $(#d3)[0].files[0]);// 4基于Ajax将文件对象发送给后端 $.ajax({ url: , type: post, // 直接将对象放到data里面即可 data: formDataObj,// Ajax发送文件必须添加的两个参数 // 不需要使用任何编码 - Django后端能自动识别 formdata 对象 contentType: false, // 告诉浏览器不要对我的数据进行任何处理 processData: false,success: function (args) {} }) 2.结论 Ajax发送文件数据需要利用内置对象FormData // 1先生成一个内置对象 let formDataObj new FormData();// 2支持添加普通的键值对 formDataObj.append(username, $(#d1).val()); formDataObj.append(password, $(#d2).val());// 3支持添加文件对象 --- 先拿到标签对象 ---- 再拿到文件对象 formDataObj.append(myfile, $(#d3)[0].files[0]); 需要指定两个关键性的参数 // Ajax发送文件必须添加的两个参数 // 不需要使用任何编码 - Django后端能自动识别 formdata 对象 contentType: false, // 告诉浏览器不要对我的数据进行任何处理 processData: false,Django后端能直接自动识别到FormData对象 将内部的普通键值对自动解析并封装到request.POST中将内部的文件数据自动解析并封装到request.FILES中 print(POST::, request.POST) # 普通键值对放在了 request.POST 中 # POST:: QueryDict: {username: [dream], password: [666]}print(FILES::, request.FILES) # 文件数据放在了 request.FILES 中 # FILES:: MultiValueDict: {myfile: [InMemoryUploadedFile: img.png (image/png)]}四.分页 1.前言 当我们需要使用到非Django内置的第三方模块或者功能组件代码的时候我们一般情况下会创建一个名为utils的文件夹在该文件夹中对模块的功能进行划分 注意样式基于bootstrap需要引入bootstrap配置 2.自定义分页器封装代码 class Pagination(object):def __init__(self, current_page, all_count, per_page_num2, pager_count11):封装分页相关数据:param current_page: 当前页:param all_count: 数据库中的数据总条数:param per_page_num: 每页显示的数据条数:param pager_count: 最多显示的页码个数try:current_page int(current_page)except Exception as e:current_page 1if current_page 1:current_page 1self.current_page current_pageself.all_count all_countself.per_page_num per_page_num# 总页码all_pager, tmp divmod(all_count, per_page_num)if tmp:all_pager 1self.all_pager all_pagerself.pager_count pager_countself.pager_count_half int((pager_count - 1) / 2)propertydef start(self):return (self.current_page - 1) * self.per_page_numpropertydef end(self):return self.current_page * self.per_page_numdef page_html(self):# 如果总页码 11个if self.all_pager self.pager_count:pager_start 1pager_end self.all_pager 1# 总页码 11else:# 当前页如果页面上最多显示11/2个页码if self.current_page self.pager_count_half:pager_start 1pager_end self.pager_count 1# 当前页大于5else:# 页码翻到最后if (self.current_page self.pager_count_half) self.all_pager:pager_end self.all_pager 1pager_start self.all_pager - self.pager_count 1else:pager_start self.current_page - self.pager_count_halfpager_end self.current_page self.pager_count_half 1page_html_list []# 添加前面的nav和ul标签page_html_list.append(nav aria-labelPage navigationul classpagination)first_page lia href?page%s首页/a/li % (1)page_html_list.append(first_page)if self.current_page 1:prev_page li classdisableda href#上一页/a/lielse:prev_page lia href?page%s上一页/a/li % (self.current_page - 1,)page_html_list.append(prev_page)for i in range(pager_start, pager_end):if i self.current_page:temp li classactivea href?page%s%s/a/li % (i, i,)else:temp lia href?page%s%s/a/li % (i, i,)page_html_list.append(temp)if self.current_page self.all_pager:next_page li classdisableda href#下一页/a/lielse:next_page lia href?page%s下一页/a/li % (self.current_page 1,)page_html_list.append(next_page)last_page lia href?page%s尾页/a/li % (self.all_pager,)page_html_list.append(last_page)# 尾部添加标签page_html_list.append(/nav/ul)return .join(page_html_list)3.后端使用方法 def get_book(request):book_list models.Book.objects.all()current_page request.GET.get(page,1)all_count book_list.count()page_obj Pagination(current_pagecurrent_page,all_countall_count,per_page_num10)page_queryset book_list[page_obj.start:page_obj.end]return render(request,booklist.html,locals())4.前端使用方法 div classcontainerdiv classrowdiv classcol-md-8 col-md-offset-2{% for book in page_queryset %}p{{ book.title }}/p{% endfor %}{{ page_obj.page_html|safe }}/div/div /div

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/88775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在线考试网站开发模板建站合同

本文分享主要描述了几种书写SQL时常见的一些隐藏错误,主要包括:在运算符中使用null值、在聚合数据时使用null值、求平均值时使用判断条件、滤条件中使用and和or、查询的列字段之间缺少逗号分隔、inner join与left join。都是一些比较细节的点&#xff0c…

vue可以做pc端网站吗seo实战密码读后感

3D裸眼技术大多处于研发阶段,它的研发分两个方向,一是硬件设备的研发,二为显示内容的处理研发。第二种已经开始小范围的商业运用。大众消费者接触的不多。从技术上来看,3D裸眼可分为光屏障式(Barrier)、柱状透镜(Lenticular Lens)…

建设企业网站哪家好建设网站的费用如何入账

一些文字来自于 Microsoft . (只需要读下面的红色文字即可!) 1 C# 语言版本控制 最新的 C# 编译器根据项目的一个或多个目标框架确定默认语言版本。 Visual Studio 不提供用于更改值的 UI,但可以通过编辑 .csproj 文件来更改值。…

建设网站 关于竣工结算的期限关于公司网站建设请示

CSS3 - 给div或者文字添加阴影(盒子阴影、文本阴影的使用) CSS3定义了两种阴影:盒子阴影和文本阴影。其中盒子阴影需要IE9及其更新版本,而文本阴影需要IE10及其更新版本。下面分别介绍两种阴影的使用: 1,盒子阴影 (1)盒子阴影的…

正规的网站制作在哪里网站怎么在工信部备案

周四早间,金价接近每盎司2,030美元,创下6天来的最高水平; 美联储确认鸽派政策转向,美元和美国国债收益率双双下挫; 英国央行和欧洲央行2023年的最终政策公告可能会进一步推高金价; 随着投资者重新评估美联储…

建设银行网站打不井微商城小程序哪个好

Python AI 绘画 本文我们将为大家介绍如何基于一些开源的库来搭建一套自己的 AI 作图工具。 需要使用的开源库为 Stable Diffusion web UI,它是基于 Gradio 库的 Stable Diffusion 浏览器界面 Stable Diffusion web UI GitHub 地址:GitHub - AUTOMATI…

河北省两学一做网站大型网站的优化方法

步骤 1,将QNX imge转换成android sparse镜像 这个QNX镜像可以是直接从QNX分区读取得到或者你的刷机包中的镜像: rootubuntu:~/workspace/$ file qnx_img.img qnx_img.img: DOS/MBR boot sector使用python tools/mksparse.py $镜像文件 转换为android …

宜昌企业网站建设哪个网站做签约设计师比较好

先跑起来 🥊 Python 什么是 Python? Python [ˈpaɪθɑ:n]是 一门 适合初学者 的编程语言 类库 众多 几行代码 就能 出 很好效果 应用场景丰富 在 各个应用领域 都有 行内人制作的 python 工具类库 非常专业、 好用 特别是 人工智能领域 pytho…

网站建设中图片是什么页面模板只有注册的人可以弄吗

一 springcloud stream的作用 1.1 springcloud stream作用 stream屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。 stream中的消息通信模式遵循了“发布-订阅”模式。 1.2 Binder作用 通过定义绑定器Binder作为中间层,实现…

移动端响应式网站怎么做移动端适配 wordpress

目录 * 491.递增子序列 💡解题思路 回溯三部曲 💻实现代码 * 46.全排列 💡解题思路 # 回溯三部曲 单层搜索的逻辑 💻实现代码 * 47.全排列 II 💡解题思路 💻实现代码 * 491.递增子序列 题目链…

学网站建设工作推广渠道包括哪些

访问者模式是一种行为设计模式,它允许你在不修改现有对象结构的情况下,定义新的操作。访问者模式通过将操作封装在一个访问者对象中,使得可以在不同的对象上执行不同的操作,从而实现了操作和对象的解耦。 在Java中&#x…

六安服装网站建设地址餐饮吸引客流的活动方案

全世界只有3.14 % 的人关注了青少年数学之旅随着科技的发展,机器人必然逐渐进入我们的生活,甚至在许多领域替代人类。以下是目前全球范围内最先进的一些机器人:Actroid-F这种实验性机器人的目标,是创造最逼真的仿人类机器人&#…

网站的费用多少网络促销

Go 语言中的 GIF 图像处理完全指南:image/gif的技术与实践 概述安装与基础设置导入 image/gif 包初步配置示例:设置一个简单的 GIF 编码环境 读取与解码 GIF 图像读取 GIF 文件解析 GIF 数据 创建与编码 GIF 图像创建 GIF 图像编码 GIF 图像 处理 GIF 动…

王晴儿网站建设自己做的小网站

当我们在编写程序时,往往需要处理可能发生的异常情况,以保证程序的稳定性和可靠性。这时,就可以使用异常处理机制。C中的异常处理机制通过try、catch和throw关键字实现。 异常处理机制基本上遵循以下的流程: 1. 在可能引发异常的…

动易 网站首页工信部的网站备案信息查询

事情是这样的,我们项目最近应业主的要求迁移到了新的服务器,起初一切正常,部署、上线、测试都没有问题,项目大概运行了一周的工作日时间都没出现问题,直到周六那天,项目经理打电话过来说服务器崩了&#xf…

做网站的图片=gif湖南响应式网站哪里有

你不知道的 CSS 之包含块 一说到 CSS 盒模型,这是很多小伙伴耳熟能详的知识,甚至有的小伙伴还能说出 border-box 和 content-box 这两种盒模型的区别。 但是一说到 CSS 包含块,有的小伙伴就懵圈了,什么是包含块?好像…

建网站底部怎么做的南宁网页制作

本次介绍在window系统x86机器上安装国产系统 arm 系统的详细教程。 注:ubuntu 的arm系统安装是一样的流程。 1.安装环境准备。 首先,你得有台电脑,配置别太差,至少4核8G内存,安装window10或者11都行(为啥…

网站建设做一个要多久网站建设微信文章

1.MyBatis-Plus 1.1特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作强大的 CRUD 操作:内置通用 M…

seo快速建站哪个网站做的win10系统好

博主:代码菌-CSDN博客 专栏:C杂货铺_代码菌的博客-CSDN博客 目录 🌈前言🌈 📁 类的6个默认成员函数 📁 构造函数 📂 概念 📂 特性(灰常重要) &#x1f4c…

网站建设.c看广告收益最高的软件

目录 一、HTML中Canvas画图strokeStyle 和 fillStyle 的区别是什么? 二、如何设置一幅canvas图中某个颜色透明? 三、H5 canvas中strokeRect参数如果是小数,如何处理? 四、H5 Canvas中如何画圆角矩形框? 一、HTML中…