django用户界面个人中心获取用户对象

个人中心

视图的确定

我们在完成登录界面的步骤中,只需要用到我们部分的字段,实现部分字段查询,我就选择了RetriveAPIView

from rest_framework.generics import RetriveAPIView
from rest_framework.permissions import IsAuthenticated

class LoginUserInfo(RetrieveAPIView):
    serializer_class = serializers.LoginSerializer
    permission_classes = (IsAuthenticated,)
    验证方法,会调用我们重写的Authenticate方法,实现对jwt的内容解码得到我们的用户对象

    def get_object(self):
        print(self.request.user)
        return self.request.user

创建一个序列化器

既然使用了三级视图,我就需要给他指定一个serializer

class LoginSerializer(serializers.ModelSerializer):
    class Meta:
        model=models.User
        fields=('id','username','phone','email')

指定可能传入的字段id, username,phone,email

注册视图

在user模块中的urls.py加入字段

    url(r'^loginuser/',views.LoginUserInfo.as_view())

到urlpattern中
我们就完成后端的逻辑了

js中发送get请求

$(function () {
    token=localStorage.token
    alert(token)
    var password
    $.get()
    $.ajax({
        url:'http://127.0.0.1:8000/loginuser/',
        method:'GET',
        headers:{
            'Authorization':'JWT '+token
        },
        success(data){
          console.log(data)
            console.log(typeof (data))
            $('#cusername').text(data.username)
            id1=data.id
            email1=data.email
        },
        error(data){
          alert('failure')
            console.log(data)
            console.log(data['status'])
            if(data['status']==401) {
                location.href = '/templates/login.html?next=userinfo.html'
            }
        },
    })
})

可以看见这里的get请求的发送方法和之前都不一样了,我们在get请求中发送了一个token回去在console中我们就可以看到我们收到了一个返回值,是一个用户对象,这里就是后端将jwt解码并且从新获取用户对象的过程
django用户界面个人中心获取用户对象_第1张图片
成功获取用户对象

你可能感兴趣的:(django项目后端流程)