Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

611
Visualizações
Django, url not found 404

Project Folder structure

I am new to django. I am trying to create a simple rest api end point, but I get a 404. I am sure I am missing some setting. models.py

class DisplayItems(models.Model):
    yesNo = models.CharField(max_length=10)
    yogaMessage = models.CharField(max_length=50)
    yogaTimeMessage = models.CharField(max_length=100)

    @classmethod
    def create(cls, yesNo, yogaMessage, yogaTimeMessage):
        displayItems = cls(yesNo=yesNo, yogaMessage=yogaMessage, yogaTimeMessage=yogaTimeMessage)
        return displayItems

serializers.py

from .models import DisplayItems

class DisplayItemsSerializer(serializers.ModelSerializer):
    yesNo = serializers.CharField(max_length=10)
    yogaMessage = serializers.CharField(max_length=50)
    yogaTimeMessage = serializers.CharField(max_length=100)

    class Meta:
        model = DisplayItems
        fields = ('__all__')

urls.py

from .views import DisplayItemsViews
from django.contrib import admin
urlpatterns = [
    path(r'^admin/', admin.site.urls),
    path(r'^zzz/', DisplayItemsViews.as_view()),
]

views.py

from rest_framework.response import Response
from rest_framework import status
from .serializers import DisplayItemsSerializer
from .models import DisplayItems


class DisplayItemsViews(APIView):
    def get(self, request):
        displayItems = DisplayItems.create("YES!", "There's yoga today", "At 2:00 pm Eastern Time")
        serializer = DisplayItemsSerializer(displayItems)
        return Response({"status": "success", "data": serializer.data}, status=status.HTTP_200_OK)

The url I am trying to run is http://127.0.0.1:8000/zzz/

I have read almost all relevant stackoverflow posts, but can't seem to understand what I am missing.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Three things:

1 - Have you installed rest_framework in your INSTALLED_APPS of your settings.py?

2 - Your path() in your urls.py should not contain the r'^ portion, meaning the proper paths are path('admin/', admin.site.urls) and path('zzz/', DisplayItemsViews.as_view()). This is old behavior from when Django suggested using url() instead of path()

3 - I assume you've imported APIView in your views.py, if not, you need to from rest_framework.views import APIView

EDIT: My working local version.

views.py

from rest_framework.response import Response
from rest_framework import status
from rest_framework.views import APIView

from .serializers import DisplayItemsSerializer
from .models import DisplayItems


class DisplayItemsViews(APIView):
    def get(self, request):
        displayItems = DisplayItems.create("YES!", "There's yoga today", "At 2:00 pm Eastern Time")
        serializer = DisplayItemsSerializer(displayItems)
        return Response({"status": "success", "data": serializer.data}, status=status.HTTP_200_OK)

settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'base',
    'rest_framework'
]

urls.py

from django.contrib import admin
from django.urls import path

from base.views import DisplayItemsViews

urlpatterns = [
    path('admin/', admin.site.urls),
    path('zzz/', DisplayItemsViews.as_view())

]

models.py

class DisplayItems(models.Model):
    yesNo = models.CharField(max_length=10)
    yogaMessage = models.CharField(max_length=50)
    yogaTimeMessage = models.CharField(max_length=100)

    @classmethod
    def create(cls, yesNo, yogaMessage, yogaTimeMessage):
        displayItems = cls(yesNo=yesNo, yogaMessage=yogaMessage, yogaTimeMessage=yogaTimeMessage)
        return displayItems

serializers.py

from rest_framework import serializers

from .models import DisplayItems

class DisplayItemsSerializer(serializers.ModelSerializer):
    yesNo = serializers.CharField(max_length=10)
    yogaMessage = serializers.CharField(max_length=50)
    yogaTimeMessage = serializers.CharField(max_length=100)

    class Meta:
        model = DisplayItems
        fields = ('__all__')

And the result, at localhost:8080/zzz Image of DRF

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda