Почему DRF дает мне 404
Я продолжаю получать 404 в DRF всякий раз, когда я отправляю запрос из postman, даже если url корректен.
urls.py
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('backend.urls'))
]
backend/urls.py
from django.urls import path, include
from . import views
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register('/post', views.PostView, basename='post')
urlpatterns = [
path('', include(router.urls)),
]
Из postman я отправляю post запрос на конечную точку http://127.0.0.1:8000/post, но продолжаю получать ошибку 404 not found. Что я делаю не так?
Попробуйте изменить backend/urls.py:
import views
from django.urls import path, include
from rest_framework.routers import DefaultRouter
router = DefaultRouter()
router.register('post', views.PostView, basename='post')
urlpatterns = router.urls
Вот что работает для меня.
Создайте приложение с именем
backend, используяpython manage.py startapp {app_name}, где app_name -backendДобавьте вновь созданное приложение к
.INSTALLED_APPSв файле settings.py вашего проектаВ файле url.py вашего проекта сделайте следующее:
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path("", include("backend.urls")), ]В файле urls.py вашего приложения. (где app - это бэкенд):
from django.urls import include, path from rest_framework.routers import DefaultRouter from . import views router = DefaultRouter() router.register('post', views.PostView, basename='post') app_name = 'backend' urlpatterns = [ path('', include(router.urls)), ]Затем в вашем app(backend) views.py определите
.PostView
Это должно сработать. Конечная точка должна находиться по адресу :
http://localhost:8000/post/ .
если вы используете порт 8000