0
点赞
收藏
分享

微信扫一扫

Django Jquery_Ajax Form

玉字璧 2023-02-05 阅读 124

一个简单的表单页面

有:用户名、密码、验证吗,验证是否正确

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>login</title>

<style type="text/css">
input[type=text],input[type=password], select {
width: 100%;
padding: 12px;
display: inline-block;
border-radius: 4px;
box-sizing: border-box;
resize: vertical;
}
label {
padding: 12px 12px 12px 0;
display: inline-block;
}
input[type=button] {
width: 100%;
background-color: #4CAF50;
color: white;
padding: 14px 20px;
margin: 8px 0;
border: none;
border-radius: 4px;
cursor: pointer;
}
input[type=button] {
background-color: #45a049;
}
.container {
border-radius: 5px;
background-color: #f2f2f2;
padding: 20px;
}
.form-group {
text-align: left;

}
.col-md-3, .col-md-9 { float: left; }
.col-md-3 {
width:25%;
margin-top: 6px;
}
.col-md-9 {
width:75%;
margin-top: 6px;
}
.form-group:after {
content: "";
display: table;
clear:both;
}
@media screen and (max-width: 600px) {
.col-md-3, .col-md-9, input[type=submit] {
width: 100%;
margin-top: 0;
}
}
</style>
<script src="https://cdn.staticfile.org/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">

<form method="post" enctype="application/x-www-form-urlencoded" action="/login/">
{% csrf_token %}
<div class="error"></div>
<div class="form-group">
<div class="col-md-3">
<label for="username">用户名:</label>
</div>
<div class="col-md-9">
<input type="text" id="username" placeholder="username" autofocus name="username">
</div>
</div>
<div class="form-group">
<div class="col-md-3">
<label>密码:</label>
</div>
<div class="col-md-9">
<input type="password" id="password" placeholder="password" name="password">
</div>
</div>
<div class="form-group">
<div class="col-md-3">
<label>验证吗:</label>
</div>
<div class="col-md-9">
<input type="text" id="code" placeholder="code" name="password">
</div>
</div>
<div class="form-group">
<input id="btn" type="button" value="提交">
</div>
</form>
</div>
</div>
</body>

</html>


插入ajax scrpit

<script>

function getCookie(cname) {

var name = cname + "=";

var ca = document.cookie.split(';');

for(var i=0;i<ca.length; i++) {

var c = ca[i].trim();

if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); }

}

}

$(document).ready(function() {

$('#btn').click(function() {

$.ajax({

url: '/auth/',

type: 'post',

data: {

'username': $("#username").val(),

'password': $("#password").val(),

'code': $("#code").val(),

},

beforeSend: function(xhr){

xhr.setRequestHeader('X-CSRFToken', getCookie('csrftoken'));

},

success: function(data){

var data = JSON.parse(data);

if (data) {

$(".error").html(data.message).css({'color':'red'});

}

}

});

});

});


</script>

备注:JQuery的$.ajax函数用法:

$.ajax({name:value, name:value, ... })

beforeSend(xhr)

发送请求前运行的函数,xhr为XMLHTTPRequest对象

success(result,status,xhr)

当请求成功时运行的函数。

type

规定请求的类型(GET 或 POST)

data

规定要发送到服务器的数据。

url

规定发送请求的 URL。默认是当前页面。


Django py

urls.py

urlpatterns = [
path('test/', views.test),
path('index/', views.index),
path('login/', views.login),
path('auth/', views.auth),
]

views.py

def login(request: HttpRequest):
return render(request, 'test_login.html')


def auth(request):
if request.method != 'POST':
redirect('login/')
username = request.POST.get('username')
password = request.POST.get('password')
code = request.POST.get('code')
dic = {}
if code != '123':
dic['message'] = '验证吗错误!'
elif username != 'root' or password != '123':
dic['message'] = '用户名或密码错误!'
else:
dic['message'] = '验证成功!'
return HttpResponse(json.dumps(dic))


浏览器效果:

Django Jquery_Ajax Form_用户名

上次用了javascript,这里用JQuery通过$.ajax里的k/v来查找可以更方便和直观。


举报

相关推荐

0 条评论