一. djago项目登录 ajax基本使用( ajax无页面刷新)
登录成功跳转>>>
models from django.db import models
class UserInfo(models.Model): user=models.CharField(max_length=32) pwd=models.CharField(max_length=32)
urls from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
path(‘admin/‘, admin.site.urls),
path(‘index/‘, views.index),
path(‘handle_ajax/‘, views.handle_ajax),
path(‘cal/‘, views.cal),
path(‘login/‘, views.login),
]
viwes from django.shortcuts import render,HttpResponse
# Create your views here.
from app01.models import UserInfo
import json
def index(request):
return render(request,"index.html")
def handle_ajax(request):
return HttpResponse("Ajax请求成功了哈哈哈")
def cal(request):
import time
# time.sleep(10)
# print(request.GET)
# num1=request.GET.get("num1")
# num2=request.GET.get("num2")
num1=request.POST.get("num1")
num2=request.POST.get("num2")
ret=int(num1)+int(num2)
return HttpResponse(str(ret))
def login(reqeust):
if reqeust.method=="POST":
res={"user":None,"error":""}
print(reqeust.POST)
user=reqeust.POST.get("user")
pwd=reqeust.POST.get("pwd")
user_obj=UserInfo.objects.filter(user=user,pwd=pwd).first()
if user_obj:
res["user"]=user
else:
res["error"]="用户名或者密码错误!"
return HttpResponse(json.dumps(res))
else:
return render(reqeust,"login.html")
login.html 页面 <!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/static/js/jquery-3.3.js"></script>
</head>
<body>
<form>
用户名 <input type="text" id="user">
密码 <input type="password" id="pwd">
<input type="button" value="提交" id="login_btn"><span class="error"></span>
{% csrf_token %}
</form>
<script>
$("#login_btn").click(function () {
// 发送Ajax请求登录认证
$.ajax({
url:"/login/",
type:"post",
data:{
user:$("#user").val(),
pwd:$("#pwd").val(),
csrfmiddlewaretoken:$("[name=‘csrfmiddlewaretoken‘]").val()
},
success:function (response) {
console.log(response); // json字符串
var res=JSON.parse(response);
console.log(res);
if (res.user){
// 登陆成功
location.href="/index/"
}else{
// 登录失败
$(".error").html(res.error).css("color","red");
setTimeout(function () {
$(".error").html("")
},1000)
}
}
})
})
</script>
</body>
</html>
index.html 页面 <!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="/static/js/jquery-3.3.js"></script>
</head>
<body>
<h4>INDEX页面</h4>
<button class="btn">提交Ajax</button>
<p class="show"></p>
<hr>
{% csrf_token %}
<input type="text" id="num1"> + <input id="num2" type="text"> = <input id="ret" type="text"><button class="cal">计算</button>
<script>
// j简单的ajax请求
$(".btn").click(function () {
$.ajax({
url:"/handle_ajax/",
type:"get",
success:function (response) {
console.log(response);
$(".show").html(response)
}
})
});
// 传参Ajax请求
$(".cal").click(function () {
var num1=$("#num1").val();
var num2=$("#num2").val();
$.ajax({
url:"/cal/",
type:"post",
data:{
num1:num1,
num2:num2,
csrfmiddlewaretoken:$("[name=‘csrfmiddlewaretoken‘]").val()
},
success:function (response) {
console.log(response);
$("#ret").val(response)
}
})
})
</script>
</body>
</html>
ajax发送数据格式知识点 <!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>Title</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script>
var i=10;
var s=‘hello‘;
var arr=["123",456,true];
var obj={name:‘alex‘,age:23};
console.log(JSON.stringify(s));
console.log(JSON.stringify(arr));
console.log(JSON.stringify(obj));
// console.log(JSON.parse(s));
// console.log(JSON.parse(arr));
console.log(JSON.parse(‘{"name":"alex","age":18}‘))
/*
* 序列化方法: JSON.stringify() 等同于Python json.dumps()
* 反序列化方法: JSON.parse() 等同于Python json.loads()
*
*
* */
</script>
</head>
<body>
</body>
</html>
查看更多关于二 .python基于djago项目登录 ajax基本使用的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did172040