9.Ajax

前端提供用户选择,输入,一般用表单收集数据
后端(服务器)采集前端的收集数据
处理好后才会给数据库
后端(由业务代码组成)是前端与数据库的一个中介,连接数据库同时判断前端的内容是否能被录入到数据库

前端:用html、css、js语言写
后端:用python、java、php语言写
数据库:用sql语言写
django框架:可以在后端直接套用已经写好的进行改善或者重新开发
前后端交互:前端写好的语言用js对象封装,需要通过json转成数组才能解析给后端的语言进行解读
json(js的对象表达式,主要用于数据的交互):就是一个特殊格式的字符串,这个字符串可以被任意的语言所识别,而且可以转换为任意语言中的对象
json和js对象的格式一样,只不过json字符串中属性名必须要加双引号,其他和js语法一致
分类:
1、对象{}
2、数组[]

json格式数组,在原有的 [ ] 基础上加上 ’ ’ ,里面不能放入函数和undefined
允许的值:字符串、数组、布尔值、空值、对象、数组

1、将json字符串去掉引号转为js中的对象(通过JSON起中间作用)
var o = JSON.parse(json对象)

2、将js对象转为JSON
var o = JSON.stringify(js对象)

JSON为js的工具’类‘ , parse和stringify为JSON类的函数

前端与后端交互:
第一种流程:
前端:form进行收集 ,action=”/“为提交给后端的某一项代码,method=”post(不会在浏览器网址后面传递参数,而用get会传递)“
后端:class MainHandler类,
def get(访问这个python的程序,转到这个页面 )(self)和method="get"一样,给浏览器传递数据
self.render()转发,发送数据到指定浏览器位置
def post (self)获取前端传递过来的数据(这里前后端都是post格式,所以get只是用来转发)
self.get_argument(有多个就要加s)(“username”)
self.get_argument(“pwp”)

if __name__中(r“/”,MainHandler)
”/“代表当前程序范问的路径
application.listen(8888)中的8888为端口号,辨别程序(程序都分配有0-65535的端口号)

先访问程序():
1、运行python文件
2、在浏览器的地址栏手动输入一串地址: localhost:8888或者127.0.0.1:8888(这里的本地ip和locahost作用一样)
然后程序再将内容转发到页面上显示
再让用户输入,post再收集信息给后端

另一种流程:
Ajax(前端的一种技术,网页开发,属于异步刷新)
异步:调用不会立即得到结果,而是在调用方给出结果之前,先做其他的某些事情,效率更高
同步:调用某一个东西,调用方必须要等到结果之后才会继续往下执行

$.Ajax({(传入的是一个对象,要用大括号括起)
“type”:“post”(请求数据的格式,前后端要用同种post或get,否则不能交互,一般前后端都用post)
”url“:”/“(后台接口url,服务器路径)
”data“:{”i11(键,用来存储‘值’,随便命名)“:i1,”i22“:i2}(传输的数据)
})
然后后端def post (self)获取前端传递过来的数据
i1= self.get_argument(“i11”)
i2= self.get_argument(“i22”)(这里输入属性名不用输入属性值,属性名不相同)
sum=i1+i2(此时仍是字符串类型)前端收集用户数据的时候,数字会变成字符串而不是数值
所以要换成sum=int(i1+i2)就可以进行计算了,或者 i1= int( self.get_argument(“i11”))提前转
result_data={“result”:sum}将sum封装起来(data是前端封装发送过来给后端,result_data是后端封装发送回给前端)
self.write(result_data)将数据写入到浏览器中

然后前端也要设置接受器代码
”success(接收后端指令成功后要执行接收内容的函数)“:function(data(可以随意命名)){console.log(data.result(属于后端的result_data))}
然后要显示出来可以写成”success“:function(data{ipts.eq(2)val(不传参数是读取数据,传入是改变)(data.result)}

猜你喜欢

转载自blog.csdn.net/qwe863226687/article/details/114057268