将 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 时
所以我有:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url('user/login',Login.as_view()),
url('user/registration',Login.as_view()),
]
一切正常,当我使用 Postman 时,或者在另一个本地主机上运行前端时,我会收到来自服务器的响应,但问题是当我通过 localhost:8000 访问它时,服务器不会呈现网页
最佳答案
发生这种情况是因为您将其与 path
和 url
混淆了。
url('', index),
这里,因为您在网址中给出了 ''
,所以这不是正确的方法。这就是为什么它不会进入下一个后续模式。
Solution-1: Use proper
url
patterns with regular patterns using^
and$
.
urlpatterns = [
url(r'^$', index),
url(r'^user/login/$',Login.as_view()),
. . . . .
]
Solution-2: Use
path
if usingdjango>=2.0
.
from django.urls import path
urlpatterns = [
path('', index),
path('user/login',Login.as_view()),
. . . .
]
关于Django 索引 url 禁用 api url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433591/