ajax失去焦点练习
所需文件

"""homework URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.11/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from app01 import views from django.views import View urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^reg/',views.reg), url(r'^check/',views.check), ]

from django.shortcuts import render,HttpResponse,redirect from app01.models import * # Create your views here. def reg(request): if request.method=='POST': pass return render(request,'reg.html') def check(request): username=request.POST.get('username') ret=Account.objects.filter(name=username) if ret: return HttpResponse('该用户名已注册') else: return HttpResponse('用户名可用')

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>注册页面</title> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="/static/bootstrap/css/bootstrap.css"> </head> <body> <div class="container"> <div class="row"> <div class="col-md-4 col-md-offset-2"> <form action="" method="post"> <div class="form-group"> <label for="username">用户名</label> <input type="text" class="form-control" id="username" placeholder="用户名"> <span id="username_span" class="username_span"></span> </div> <button type="button" class="btn btn-primary" id="btn_submit">登录</button> </form> <script src="/static/jquery-3.2.1.min.js"></script> <script src="/static/bootstrap/js/bootstrap.js"></script> <script src="/static/init_ajax.js"></script> <script> $('#username').on('blur', function () { var $username=$('#username').val(); var $spanElement=$('#username_span') {#var $username = $(this).val();#} {#var $spanElement = $(this).next();#} $.ajax({ url: '/check/', type: 'post', data: {'username': $username}, success: function (arg) { $spanElement.text(arg); } }) }) </script> </div> </div> </div> </body> </html>
需要引用的插件:

// 从COokie取CSRF TOKEN的值 function getCookie(name) { var cookieValue = null; if (document.cookie && document.cookie !== '') { var cookies = document.cookie.split(';'); for (var i = 0; i < cookies.length; i++) { var cookie = jQuery.trim(cookies[i]); // Does this cookie string begin with the name we want? if (cookie.substring(0, name.length + 1) === (name + '=')) { cookieValue = decodeURIComponent(cookie.substring(name.length + 1)); break; } } } return cookieValue; } var csrftoken = getCookie('csrftoken'); // 将CSRF TOKEN值 设置到AJAX的请求头中,后续的AJAX请求就会自动携带这个CSRF TOKEN function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ beforeSend: function (xhr, settings) { if (!csrfSafeMethod(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrftoken); } } });
撸起袖子加油干!!!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通