在vue向Django后端传参的时候,常常会出现request.body或者其他为空的现象,主要原因是参数存放的位置不对。这里总结一下两种传参方式。

data

我们需要传递的数据可以放在data中以键值对的形式来传递到后端。

export function registerM(username, password) {
    return request({
        url: 'login/register/',
        method: 'post',
        data: {
            nickname: username,
            pwd: password
        }
    })
}

在Django后端中我们通过request.data来访问vue传递的数据

    @action(methods=['post'], detail=False)
    @csrf_exempt
    def register(self, request, *args, **kwargs):
        username = request.data.get("nickname")
        pwd = request.data.get("pwd")

params

我们也可以通过params来传递数据,params也是健值对的形式。

export function SignInM(params) {
    return request({
        url: 'login/LogOn/',
        method: 'post',
        params: params
    })
}

在Django后端我们可以使用request.query_params.get()来获取vue前端传递的数据。

    @action(methods=['post'], detail=False)
    @csrf_exempt
    def register(self, request, *args, **kwargs):
        username = request.query_params.get('nickname')
Logo

前往低代码交流专区

更多推荐