# ### 这里前端是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")