【问题标题】:Django (DRF) trailing slash issueDjango(DRF)斜杠问题
【发布时间】:2021-10-09 03:20:44
【问题描述】:

我对 DRF 中的 PUT 请求有疑问,它基本上是关于 url 没有斜杠,但即使我在所需的 URL 中添加斜杠,它也会在后端,因此不会在前端获取数据 无论如何,如果有人有任何解决方案,请告诉

这是我的代码: urls.py

from django.contrib import admin
from django.urls import path,include               
from rest_framework import routers                 
from main import views     

router = routers.DefaultRouter()   #Creating a router object which i assume is the web API root                
router.register(r'todos/', views.TodoView, 'todo')   #mapping views URL'S to the router (web api root)

urlpatterns = [
    path('admin/', admin.site.urls),
    path('api/', include(router.urls))     #including all views urls/route in the same url path (api/)         
]

如果前端也很重要: app.js

handleUpdate(item){
  if(item.id){
    axios.put(`http://localhost:8000/api/todos/${item.id}`)
    return

  }
}

【问题讨论】:

    标签: javascript reactjs python-3.x django django-rest-framework


    【解决方案1】:

    通过在前端添加斜杠解决了这个问题

      axios.put(`http://localhost:8000/api/todos/${item.id}/`)
    

    【讨论】:

      【解决方案2】:

      REST API 路由器中有一个参数,您可以使用它来远程处理尾部斜杠:

      router = DefaultRouter(trailing_slash=False)
      

      https://www.django-rest-framework.org/api-guide/routers/#defaultrouter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-28
        • 1970-01-01
        • 2019-02-03
        • 2011-06-28
        • 1970-01-01
        • 2023-03-19
        • 2011-05-08
        • 1970-01-01
        相关资源
        最近更新 更多