Ajax简介
- 一门异步的加载技术,局部刷新
- 异步加载,可以在不重载整个网页的前提下,进行局部刷新
- 分为原生和JQ两种
JSON数据格式
- Json对象转字符串: JSON.stringify()
- 字符串转Json对象:JSON.parse()
<script type="text/javascript">
var obj = {"name": "JiYu", "age": "99"};
//json数据 可读可写
console.log(obj);
console.log(typeof obj);
console.log(obj.name);
obj.name = "NianHua";
console.log(obj);
// json遍历
for (var key in obj) {
console.log(key + ":" + obj[key])
}
// json对象转字符串
var obj_string = JSON.stringify(obj);
console.log(obj_string);
console.log(typeof obj_string);
// 字符串对象转json:键值对的引号必须是双引号
var obj_json = JSON.parse(obj_string);
console.log(obj_json);
console.log(typeof obj_json);
</script>
前后端数据交互
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>前后端数据交互</title>
</head>
<body>
<form action="/" method="post">
用户名:<input type="text" placeholder="请输入用户名" name="user"><br>
密 码:<input type="password" placeholder="请输入密码" name="pwd"><br>
<input type="submit" value="提交"> <input type="reset" value="重置">
</form>
</body>
</html>
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("Demo.html")
def post(self):
user = self.get_argument("user")
pwd = self.get_arguments("pwd")
print("用户名:",user)
print("密码:",pwd)
if __name__ == "__main__":
# 路由
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
Ajax局部刷新
- 导入jquery
- 使用方式
- $.ajax({...})
- $.get({...})
- $.post({...})
- html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Ajax局部刷新</title>
</head>
<body>
<input type="text" name="a">+
<input type="text" name="b">=
<input type="text" name="c"><br>
<button id="btn">计算</button>
<script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.js"></script>
<script>
// 获取元素
var inp = $("input");
var btn = $("#btn");
btn.click(function () {
// 获取元素值
var a = inp.eq(0).val();
var b = inp.eq(1).val();
// 方法一:ajax
$.ajax({
//get、post不用写type
'type': 'post',
// 提交的地址
'url': '/',
// 传给后台的数据
'data': {
'aaa': a,
'bbb': b
},
// 成功之后的回调函数
'success': function (data1) {
res = data1['result'];
inp.eq(2).val(res);
}
})
// 方法二:get
// $.get({});
// 方法三:post
// $.post({});
})
</script>
</body>
</html>
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("Demo.html")
def post(self):
# 根据键取前台传来的值
a = int(self.get_argument('aaa'))
b = int(self.get_argument('bbb'))
result = a + b
return_data = {'result':result}
# 返回数据
self.write(return_data)
if __name__ == "__main__":
# 路由
application = tornado.web.Application([
(r"/", MainHandler),
])
application.listen(8888)
tornado.ioloop.IOLoop.current().start()