前端和后端位于两个不同的服务器中,它们现在可以连接,但无需使用 Django 自己的模板来获取用户的信息。
如何使用jQuery获取用户信息?
假设在用户登录后,django 确实将一个名为 user
的对象传递到前端。但是我如何使用jquery来获取它并将其保存为令牌,以便信息确实保存一段时间?
我正在使用 ajax 连接到后端
$.ajax({
method : "POST",
url : "api",
data : {
email : email,
password: password
},
success: function (data) {
clearInputs();
error(data.message);
successRedirect(data);
},
error : function (error) {
console.log(error);
}
})
请记住,django 在服务器端渲染模板,因此您无法访问对象,但是,如果您需要来自 bacenkd 的任何信息,也许您可以在模板中渲染一些如下(即使用div,您可以使用您认为必要的任何元素(
<div id="username-{{request.user}}"></div
Django 将渲染你的模板,它会创建一个 id 为 username-this-is-a-logged-username
的div
或以JS为例
var logged_user_id = '{{request.user.id}}'
在您的情况下,如果您使用的是 Ajax,则可以向视图中的响应添加必要的信息,
即,在您看来
def some_view(request):
response = {
"user": request.user.username,
"user_id": request.user.id,
}
# some view actions
return JsonResponse(response)
现在在您的 JS 中您可以访问您的数据
$.ajax({
method : "POST",
url : "api",
data : {
email : email,
password: password
},
success: function (data) {
clearInputs();
// here you can access to the fields that you have defined in your view
console.log(data["username"]);
console.log(data["user_id"]);
},
error : function (error) {
console.log(error);
}
})
some_view
应该是回答api
URL 的视图