新手刚接触python,跟着教程学的,笔记是为了把我学到的知识梳理一遍,仅供参考。欢迎各路大神指点。
学习版本: Django 1.8. Python 3.5
Ajax
Ajax基本概念
异步的javascript。在不全部加载某一个页面部的情况下,对页面进行局的刷新,ajax请求都在后台。
-
同步:发起请求后,等回调函数成功后进入下一步
-
异步:发起请求后,不等回调函数执行,直接进行下一步
-
同步AJAX:
$.ajax({ 'url':'/ajax_handle', 'type':'get', 'dataTpye':'json', 'async':false, #同步ajax })
图片,css文件,js文件都是静态文件。
JSON:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式
Ajax登录案例
- 首先分析出请求地址时需要携带的参数。
- 视图函数处理完成之后,所返回的json的格式。
1.显示登录页面
新建static文件夹,用于存放静态文件:js,css,图片
配置settings.py
STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')] #设置静态文件目录 
1)设计url,通过浏览器访问 http://127.0.0.1:8000/login_aj 时显示登录页面。
url(r'^login_aj$', views.login_aj), 2)设计url对应的视图函数
def login_aj(request): return render(request,'booktest/login_aj.html') 2.登录校验功能
1)设计url,点击登录页的登录按钮发起请求http://127.0.0.1:8000/login_ajc时进行登录校验。
url(r'^login_ajc$', views.login_ajc) 2)设计url对应的视图函数login_ajc。
from django.http import HttpResponse,JsonResponse def login_ajc(request): #获取用户名和密码 username = request.POST.get('username') password = request.POST.get('password') #校验,返回json数据 if username == '123' and password == '123': return JsonResponse({'res':1}) else: return JsonResponse({'res':0}) 3)编写模板文件login_aj.html。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>ajax</title> <script src="/static/js/jquery-1.12.4.min.js"></script> <script> $(function(){ $('#btnLogin').click(function () { #获取用户名密码 username = $('#username').val() password = $('#password').val() #ajax请求 $.ajax({ 'url':'/login_ajc', 'type':'post', 'data':{'username':username,'password':password}, 'dataType':'json', }).success(function(data){ #成功 res ==1 ;失败 res==0 if (data.res == 0){ $('#err').show().html('密码错了,兄弟!') } else { location.href = '/index' #成功时 跳转到index页面 } }) }) }) </script> <style> #err{ display: none; color:darkred; } </style> <body> <div> 用户名 <input type="text" id="username"> 密码 <input type="password" id="password"> <input type="button" id="btnLogin" value="登录"> </div> <div id="err">失败</div> </body> </html> 登录失败时,显示错误信息
登录成功时,跳转index页面
文章来源: https://blog.csdn.net/weixin_45020839/article/details/90405441