python前后端分离项目中前端请求传参问题

# ### 这里前端是Vue框架, 后端是drf框架

如果前端是其他框架的话, ajax请求写法会有相应变化; 如果后端是django框架的话,request对象会有相应变化

一. get和delete方法没有请求体, 所以要用路由参数或者用 params:{} 进行传参

(1) 用路由参数进行传参

# 前端发送ajax

this.$axios.delete(`${this.$settings.Host}/article/del_collection/${collection_id}`,{

  headers:{..}

})

 

# 后端路由
re_path(
"^del_collection/(?P<pk>\d+)/$",...),

# 视图方法里直接传参pk获取 collection_id

(2) 用 params:{} 进行传参

# 前端发送ajax

this.$axios.get(`${this.$settings.Host}/article/`,{

  params:{ collection: this.collection_list[this.current_collection].id },

  headers:{...}

})

// 其实这种添加查询字符串方式就相当于直接在路由后面写...article/?collection=1&xxx=xx

后端路由:
path(
"",...),

视图方法里获取
collection:
collection_id = request.query_params.get("collection")

 

二.  put和post请求方法的查询字符串参数在请求体中, 所以要用路由参数或者用 {} 进行传参

(1) 用路由参数进行传参同上述(1)


(2) 用{}直接传参

this.$axios.put(`${this.$settings.Host}/article/public/${article_id}/`,{
  is_public: is_public,
},{
  headers:{...}
})
后端视图中获取
is_public:
is_public = request.data.get("is_public")

 

posted @ 2020-03-18 01:13  斑驳岁月  阅读(1785)  评论(0编辑  收藏  举报