AJAX操作

测试浏览器是否支持AJAX(如果不支持,则使用ActiveXObject)

1532113-20181129153354578-1218956275.png

返回XML或者AXO的对象

1532113-20181129154701259-611618487.png

封装返回XML或者AXO对象的函数,在每次需要时调用

1532113-20181129155219528-2111959803.png
1532113-20181129155230796-983818057.png

AJAX操作步骤

1532113-20181129161429372-608556072.png

当AJAX异步操作的时候失败,可以到响应内查看相关报错的信息

1532113-20181129162003357-1392342026.png

AJAX设置按钮输出文本框的值

1532113-20181129164450827-1801313315.png
1532113-20181129164500533-1034419650.png

form表单提交案例

1532113-20181129171145831-1875118683.png
1532113-20181129171209038-1974909608.png

这是一个AJAX的POST请求案例

1532113-20181129172534826-2018303300.png

创建一个数据库和数据库相关的配置

1532113-20181129174919232-1910730308.png

原生AJAX+jquery的表单验证案例

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <script src="/static/js/common.js"></script>
  <script src="/static/js/jquery-3.3.1.min.js"></script>
  <script>
    $(function(){
      $("[name='loginname']").blur(function(){
        //1.获取xhr
        var xhr = getXhr();
        //2.创建请求
        var lname=this.value;
        var url = "/06-server?lname="+lname;
        xhr.open('get',url,true);
        //3.设置回调函数
        xhr.onreadystatechange = function(){
          if(xhr.readyState==4&&xhr.status==200){
            $("#loginNameShow").html(xhr.responseText);
          }
        }
        //4.发送请求
        xhr.send(null);
      });
    });
  </script>
</head>
<body>
<form action="" method="post">
  <p>
    登录名称: <input type="text" name="loginname">
    <span id="loginNameShow"></span>
  </p>
  <p>
    登录密码: <input type="password" name="loginpwd">
  </p>
  <p>
    用户名称: <input type="text" name="uname">
  </p>
  <p>
    <input type="submit">
  </p>
</form>
</body>
</html>
from flask import Flask, render_template, request

import pymysql
from flask_sqlalchemy import SQLAlchemy

pymysql.install_as_MySQLdb()

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI']="mysql://root:123456@localhost:3306/ajax"
db = SQLAlchemy(app)

class Users(db.Model):
  id = db.Column(db.Integer,primary_key=True)
  loginname = db.Column(db.String(30))
  loginpwd = db.Column(db.String(30))
  username = db.Column(db.String(30))

db.create_all()

@app.route('/01-xhr')
def xhr():
    return render_template('01-xhr.html')

@app.route('/02-ajax-get')
def ajax_get():
    return render_template('02-ajax-get.html')

@app.route('/02-server')
def server02():
    return "这是我的第一个ajax请求"

@app.route('/03-get-params')
def get_params():
  return render_template('03-get-params.html')

@app.route('/03-server')
def server03():
  uname = request.args.get('uname')
  return "欢迎:%s" % uname

@app.route('/04-post')
def post():
  return render_template('04-post.html')

@app.route('/04-server',methods=['POST'])
def server04():
  uname = request.form['uname']
  age = request.form['age']
  return "姓名:%s,年龄:%s" % (uname,age)

@app.route('/05-form')
def form():
  return render_template('05-form.html')

@app.route('/06-register')
def register():
  return render_template('06-register.html')

@app.route('/06-server')
def server06():
  # 接收前端传递过来的参数 - lname
  lname=request.args.get('lname')
  # 以lname作为条件,通过Users实体类查询数据
  user=Users.query.filter_by(loginname=lname).first()
  # 如果查询出来了数据的话则说明登录名称已存在,否则通过
  if user:
    return "用户名称已存在"
  else:
    return "通过"

if __name__ == '__main__':
    app.run(debug=True)

AJAX+jquery获取数据库列表书库的案例

1532113-20181129191626833-85448826.png
1532113-20181129191756629-1408775443.png
1532113-20181129191940714-1903503684.png

json可以直接打印在控制台

1532113-20181129192451443-804997959.png

json案例

<!doctype html>
<html lang="en">
 <head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="/static/js/jquery-1.11.3.js"></script>
  <script>
    var arr = [
        {
            "name":"王老师",
            "age":37,
            "gender":"男"
        },
        {
            "name":"王夫人",
            "age":15,
            "gender":"男"
        }
    ];
    $(function(){

        //1.为#jsonSingle绑定click事件
        $("#jsonSingle").click(function(){
            var jsonObj = {
                "name":"MrWang",
                "age":37,
                "gender":"男"
            };
            console.log("姓名:"+jsonObj.name);
            console.log("年龄:"+jsonObj.age);
            console.log("性别:"+jsonObj.gender);
        });

        //2.为#jsonArray绑定click事件
        $("#jsonArray").click(function(){
            var arr = [
                {
                    "name":"王老师",
                    "age":37,
                    "gender":"男"
                },
                {
                    "name":"王夫人",
                    "age":15,
                    "gender":"男"
                }
            ];

            for(var i in arr){
                //i表示的是每个元素的下标(字符串类型) 和 字符串索引
                var obj = arr[i];
                console.log("姓名:"+obj.name);
                console.log("年龄:"+obj.age);
                console.log("性别:"+obj.gender);
            }


        });

        //3.为btnShow绑定click事件
        $("#btnShow").click(function(){
            var html = "";
            for(var i=0;i<arr.length;i++){
                var obj = arr[i];
                html += "<tr>";
                    html += "<td>"+obj.name+"</td>";
                    html += "<td>"+obj.age+"</td>";
                    html += "<td>"+obj.gender+"</td>";
                html += "</tr>";
            }
            $("#body").html(html);
        });

    });
  </script>
 </head>
 <body>
  <button id="jsonSingle">JSON-单个对象</button>
  <button id="jsonArray">JSON-数组</button>
    <button id="btnShow">显示所有</button>
    <table border="1">
        <thead>
            <tr>
                <th>姓名</th>
                <th>年龄</th>
                <th>性别</th>
            </tr>
        </thead>
        <tbody id="body"></tbody>
    </table>
 </body>
</html>

1532113-20181129193554895-248795295.png

$each()迭代数组的语法

1532113-20181129194602725-1142713820.png

python处理json类完成转换使用dumps(import json)

1532113-20181129195351635-232581266.png

前端json转换为JS对象或数组=JSON.parse(json串)

1532113-20181129195901076-1975235730.png

转载于:https://www.cnblogs.com/-hjj/p/10039737.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值