Django--ajax(简单版本)

Ajax 即 Asynchronous Javascript and XML (异步 JavaScript 和 XML) 。运用在前端页面的技术,用于
向服务器发送异步请求。
传统请求:用户发送请求 -> 服务器会接收请求并处理请求 -> 返回响应结果(HttpResponse('注册成
功')/render())-> 显现在前端页面(浏览器中) -- 之前整个页面的内容会被替换掉
AJAX 请求最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。

实例:光标离开判断用户名是否合法

  1. templates发送js请求(get请求)
function check() {
    var username = document.getElementById("username").value
    xhr.open('get', '/day01/checkname/?username=' + username, true)
    xhr.send();
    xhr.onreadystatechange = function () {
        if(xhr.readyState == 4 && xhr.status == 200) {
            var msg = xhr.responseText;
            if(msg=="用户名合法"){
                document.getElementById("msg").innerHTML=""
            }
        }
    }
}
  1. views检查name是否存在
def checkname(request):
    username = request.GET.get("username")
    print("name=",username)
    user = User.objects.filter(username=username)
    if user:
        return HttpResponse("用户名已存在")
    if username.strip()=="":
        return HttpResponse("用户名不合法")
    return HttpResponse("用户名合法")
  1. 配置urls映射完成请求

post请求

xhr.open("POST",url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("name=Henry&password=123456"); # 在send方法中传参
xhr.setRequestHeader("X-CSRFToken", '{{ csrf_token }}');

你可能感兴趣的:(Django--ajax(简单版本))