如何使用jquery和django将变量传递到前面创建令牌



前端和后端位于两个不同的服务器中,它们现在可以连接,但无需使用 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 的视图

最新更新