以前flask自己就使用过模态登录
这次又测试一下
前面的基本没有问题
login_form = LoginForm(request.POST)
if login_form.is_valid():
user_name = request.POST.get('username', "")
pass_word = request.POST.get('password', "")
user = authenticate(username=user_name, password=pass_word)
if user is not None:
login(request, user)
return HttpResponse(json.dumps({'status': 'success'}), content_type='application/json')
else:
# return json.dumps({'status': 'fail', 'msg': "用户名或密码错误"})
return HttpResponse(json.dumps({'status': 'fail', 'msg': "用户名或密码错误"}), content_type='application/json')
else:
return HttpResponse(json.dumps({'status': 'fail', 'msg': "用户名或密码错误"}), content_type='application/json')
这是写在views里面的 执行到login过后 一直无法登录 我差了好多资料,都没有解决。
后来发现 原来是我前端form上没有加action
加上action 过后 就验证通过了
下面是我的ajax代码
<script>
$(function () {
$('#jsLeftBtn').on('click', function () {
var password = $("#password").val();
var username = $("#username").val();
if (username === "") {
$('#fail').text('用户名不能为空');
return
} else if (password === "") {
$('#fail').text('密码不能为空');
return
}
$.ajax({
cache: false,
type: "POST",
url: "/login/",
data: $('#myForm').serialize(),
async: true,
beforeSend: function (xhr, settings) {
xhr.setRequestHeader("X-CSRFToken", "{{ csrf_token }}");
},
success: function (data) {
if (data.status === 'success') {
window.location.href = window.location.href
} else if (data.status === 'fail') {
$('#fail').text(data.msg)
}
}
});
});
})
</script>