当前位置: 首页 > news >正文

网站开发用哪个软件方便网站建设多少钱一个站

网站开发用哪个软件方便,网站建设多少钱一个站,房产获客软件免费的,中山学校的网站建设Django环境下使用Ajax 目录 Django环境下使用Ajax介绍前情提要示例JS实现Ajax实现 传递JSON格式数据传递文件数据Django自带的序列化组件基于jsonresponse序列化数据基于Django自带的serializers 注册示例 介绍 AJAX 的主要目标是在不刷新整个页面的情况下#xff0c;通过后台…Django环境下使用Ajax 目录 Django环境下使用Ajax介绍前情提要示例JS实现Ajax实现 传递JSON格式数据传递文件数据Django自带的序列化组件基于jsonresponse序列化数据基于Django自带的serializers 注册示例 介绍 AJAX 的主要目标是在不刷新整个页面的情况下通过后台与服务器进行数据交换和更新页面内容。通过 AJAX您可以向服务器发送请求并接收响应然后使用 JavaScript 动态地更新页面的部分内容 简单来说就是将后端数据进行加工后传给前端再利用js对数据进行加工或判断后渲染到前端 AJAX 不需要任何浏览器插件但需要用户允许JavaScript在浏览器上执行AJAX 使用异步交互与服务器进行通信 同步交互 客户端发出一个请求后需要等待服务器响应结束后才能发出第二个请求 异步交互 客户端发出一个请求后无需等待服务器响应结束就可以发出第二个请求。 前情提要 常见的发送请求方式 浏览器地址直接输入url回车 GET请求 a标签的href属性 GET请求/POST请求 form表单 GET请求/POST请求 Ajax GET请求/POST请求 示例 预期效果 JS实现 body input typetext idnum1 input typetext idnum2input typetext idnum3br button idb1点我计算结果/buttonscriptdocument.getElementById(b1).addEventListener(click, function () {var num1 document.getElementById(num1).valuevar num2 document.getElementById(num2).valuevar sum parseInt(num1) parseInt(num2)document.getElementById(num3).value sum}) /script /bodyAjax实现 将要计算的参数通过data传递给后端 再由success接受后端返回的数据进行渲染 body input typetext idnum1 input typetext idnum2input typetext idnum3br button idb1点我计算结果/buttonscriptdocument.getElementById(b1).addEventListener(click, function () {var num1 document.getElementById(num1).valuevar num2 document.getElementById(num2).value$.ajax({{#url指定当前数据提交的网址,如果不写就和form表单的action一样默认释放前路由地址#}url:,{#type请求类型 GET / POST 默认是GET#}type:post,{#data传给后端的数据#}data:{num1:num1,num2:num2,},{#success回调函数 接受后端传过来的数据#}success:function (data){console.log(data)document.getElementById(num3).value data}})}) /script /body后端接受到data数据并返回sum参数 def test(request):if request.method POST:data request.POSTnum1 data.get(num1)num2 data.get(num2)sum int(num1) int(num2)return HttpResponse(sum)return render(request, app01/test.html, locals())传递JSON格式数据 success获取由后端返回的数据并使用JSON.parse(data)进行数据转换这样便可以直接用.属性获取参数 JSON.stringifyajax中将需要传递的数据转换成json类型 json.loads(request.body.decode())后端接受数据时需要通过request.body来获取请求体然后loads手动解析json数据 body input typetext idnum1 input typetext idnum2input typetext idnum3br button idb1点我计算结果/buttonscriptdocument.getElementById(b1).addEventListener(click, function () {var num1 document.getElementById(num1).valuevar num2 document.getElementById(num2).value$.ajax({{#url指定当前数据提交的网址,如果不写就和form表单的action一样默认释放前路由地址#}url: ,{#type请求类型 GET / POST 默认是GET#}type: post,{#data以json格式传递给后端数据#}data: JSON.stringify({num1: num1,num2: num2,}),{#success回调函数 接受后端传过来的数据#}success: function (data) {var new_data JSON.parse(data)if (new_data.code ! 200) {alert(非法数据)} else {console.log(data)document.getElementById(num3).value new_data.sum}}})}) /script /body接受数据并返回json格式数据(主力这里回调函数用的是data.参数) def test(request):if request.method POST:# 提取json数据必须通过request.body获取请求体 并手动解析 JSON 数据data json.loads(request.body.decode())num1 data.get(num1)num2 data.get(num2)sum int(num1) int(num2)# HttpResponse发送给前端的是str对象 需要在success重新转换类型return HttpResponse(json.dumps({code:200,sum:sum}))return render(request, app01/test.html, locals())传递文件数据 script$(document).ready($(#btn_result).click(function () {let numberOne $(#number1).val();let numberTwo $(#number2).val();let fileVal $(#file_input)[0].files[0];// Ajax携带文件数据需要借助第三方的 formData对象// 1实例化得到一个 form对象// 将所有的键值对数据都要放到 form对象中let formDataObj new FormData();formDataObj.append(numberOne, numberOne)formDataObj.append(numberTwo, numberTwo)formDataObj.append(file, fileVal)console.log(fileVal)console.log(formDataObj)// 基于Ajax发送请求$.ajax({// url指定当前数据提交的网址,如果不写就和form表单的action一样默认释放前路由地址url: ,// type请求类型 GET / POST 默认是GETtype: post,// data传给后端的数据//1传输的data直接放上面的 form对象即可data: formDataObj,//2走form对象不能让他使用编码对数据进行编码contentType: false, // 默认编码是 urlencoded//3告诉浏览器不要对数据进行额外的处理processData: false,{#data: {number_one: numberOne, number_two: numberTwo},#}// success回调函数 接受后端传过来的数据success: function (data) {console.log(data)console.log(typeof (data))// 使用 js自己的序列化方法序列化数据{#let dataVal JSON.parse(data)#}console.log(typeof (data))if (data.code 200) {$(#result).val(data.result)} else {alert(非法的数据)}}})})) /scriptdef test(request):if request.method POST:# 可以用来判断当前的请求方式是否是Ajaxprint(request.is_ajax()) # True# print(type(request.body.decode(utf-8)[0]))# 获取普通的键值对数据只需要通过 POST方法data request.POSTprint(data) # QueryDict: {numberOne: [2], numberTwo: [2]}# 获取form对象中的文件数据也要借助 FILESprint(request.FILES) # MultiValueDict: {file: [InMemoryUploadedFile: avatar.jpg (image/jpeg)]}return JsonResponse({code: 200, result: ok})return render(request, app01/test.html, locals())Django自带的序列化组件 什么是序列化 就是当我想要从数据库提取出数据后将数据对象转换为可以直接使用的数据的过程 基于jsonresponse序列化数据 from app01.models import Userdef get_user(request):# 查询所有的用户数据user_data_list []# 此时获取到的是对象数据QuerySet [Author: Author object (1), Author: Author object (2)]user_queryset User.objects.all()# 将数据字段提取后装进列表for user_obj in user_queryset:user_data_list.append({username: user_obj.username,age: user_obj.age,gender: user_obj.get_gender_display(),})print(user_data_list)# 将列表返回前端return JsonResponse(user_data_list,safeFalse)[{username: drema, age: 18, gender: female}, {username: opp, age: 28, gender: 2}, {username: hope, age: 38, gender: female}]基于Django自带的serializers 需要导入serializers模块 from app01 import models from django.core import serializersdef test(request):author models.Author.objects.all()author_list serializers.serialize(json, author)print(author_list)return JsonResponse(user_data_list, safeFalse)[{model: app01.author, pk: 1, fields: {name: 张三, age: 11, gender: 2}}, {model: app01.author, pk: 2, fields: {name: 李四, age: 19, gender: 2}}]注册示例 # 前端 {% load static %} !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title!-- 引入jQuery--script src{% static js/jquery.js %}/script!-- 引入Bootstrap的CSS文件--link href{% static css/bootstrap.min.css %} relstylesheet!-- 引入Bootstrap的JavaScript文件--script src{% static js/bootstrap.js %}/scriptstyle/* 左侧空白区域 */.left-section {background-color: dimgrey;width: 25%;height: 100vh;position: fixed;top: 0;left: 0;}/* 右侧空白区域 */.right-section {background-color: dimgrey;width: 25%;height: 100vh;position: fixed;top: 0;right: 0;}.d1 {position: fixed;left: 35%;}.form-control:focus {outline: none;box-shadow: 0 0 5px cornflowerblue;}.btn-default .btn-primary {margin-left: 150px; /* 调整为所需的间距 */}/style /head body div classleft-section/div div classright-section/div div classd1 {# form action methodpost#}div classform-grouplabel forusername用户名/labelbrinput typetext classform-control idusername placeholderUsernamebrhr/divdiv classform-grouplabel forpwd密码/labelbrinput typepassword classform-control idpassword placeholderPasswordbrhr/divdiv classform-grouplabel forpwd2再次输入密码/labelbrinput typepassword classform-control idpassword2 placeholderPasswordbr/divbutton typereset classbtn btn-default重置/buttonbutton classbtn btn-primary idb1确认/button {# /form#} /divscriptvar b1 document.getElementById(b1)$(document).ready(function () {b1.addEventListener(click, function () {$.ajax({url: ,type: post,data: JSON.stringify({username: document.getElementById(username).value,password: document.getElementById(password).value,password2: document.getElementById(password2).value}),contentType: application/json,success: function (data) {alert(JSON.parse(data.state))},error: () {console.log(错误)}})})})/script /body /html# 后端 def register(request):if request.method POST and request.is_ajax():# data request.POSTdata json.loads(request.body.decode())print(data)username data.get(username)password data.get(password)print(username, password)# models.User.objects.create(usernameusername,passwordpassword)state {state: 200}return JsonResponse(state)return render(request, app01/register.html)
http://www.hkea.cn/news/14507300/

相关文章:

  • 网站模板下载器网站建设功能设计
  • 做网站的图片大全html5手机网站案例
  • 怎么做学校网站网站的建设流程图
  • 广州 网站开发 骏域想要推广页正式
  • 网站建设 开发人一丶一一人一一绍兴住房和城乡建设厅网站
  • 高端设计网站建设wordpress改变后台地址
  • 网站后台忘了推广策略和促销策略的区别
  • 网站qq联系代码什么是网站挂马
  • 推荐网站建设收费标准wordpress汽车主题
  • 贵州贵阳建网站的电话网页设计制作实验报告
  • 闸北企业网站制作工商联网站建设方案
  • 专业网站建设是哪家内容营销包括
  • 商会网站建设方案书亚马逊关键词排名查询工具
  • php网站是什么数据库文件wordpress lms插件
  • 如何做企业网站建设上海最专业的集团网站建设
  • php开发一个企业网站价格百度云如何做网站
  • 怎么搭建钓鱼网站合肥专业做淘宝网站推广
  • “网站制作”电商网站开发视频
  • 网站视觉设计方案响应式网站建设合同
  • 傻瓜式建站软件下载网站建设大赛策划书
  • 设一个网站需要多少钱桂林市防疫最新政策
  • 已将绑定域名给另一个网站泉州城乡建设网站
  • 做网站如何做视频网站建设最常见的问题
  • 企业网站模板 简洁南京市互联网平台公司
  • 东莞长安网站设计房山做网站公司
  • 内部网站建设拓扑王者荣耀是哪家公司开发的
  • 注册网站需要多少网站更改公司需要重新备案吗
  • 公司制做网站兰州网站开发哪里可以做
  • 建设网站站点过程中四川网站建设 lkcms
  • 惠州做棋牌网站建设哪家公司收费合理哈尔滨网站建设优化