Индекс Django отключает URL-адреса API - PullRequest
2 голосов
/ 03 июня 2019

Интегрируя Angular с Django, сервер получает запрос от внешнего интерфейса, но я не могу их обработать, потому что они не достигают целевой функции

вот views.py:

class VView(viewsets.ModelViewSet):
        queryset = User.objects.all()
        serializer_class = UserSerializer

def index(request):
    return render(request, 'index.html')

@permission_classes((permissions.AllowAny))
class Login(APIView):
   def post(self, request)
       return JsonRespone({"some":"data"}, status=200)

вот мой urls.py

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url('', index),
  url('user/login',Login.as_view()),
  url('user/registration',Login.as_view()),
]

, и дело в том, что отправка запроса сейчас для user/login сервера не отвечает с помощью json, как должно, но когда я закомментирую или удаляю свой индексный URL, яhave:

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url('user/login',Login.as_view()),
  url('user/registration',Login.as_view()),
]

все работает нормально Я получаю ответы от сервера, когда использую Postman для этого, или запускаю frontend на другом локальном хосте, но проблема в том, что сервер не отображает веб-страницу, когда я к ней обращаюсьпо локальному хосту: 8000

1 Ответ

3 голосов
/ 03 июня 2019

Это происходит, потому что вы путаете это с path и url.

 url('', index),

Здесь, как вы указали '' в URL, это не правильный путь. И именно поэтому он не пойдет на следующие последующие паттерны.

Solution-1: Используйте правильные url шаблоны с обычными шаблонами, используя ^ и $.

urlpatterns = [
    url(r'^$', index),
    url(r'^user/login/$',Login.as_view()),
    . . . . . 
]

Solution-2: Используйте path, если используете django>=2.0.

from django.urls import path

urlpatterns = [
    path('', index),
    path('user/login',Login.as_view()),
    . . . . 
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...