Django 索引 url 禁用 api url

标签 django angular routes

将 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 访问它时,服务器不会呈现网页

最佳答案

发生这种情况是因为您将其与 pathurl 混淆了。

 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 using django>=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/

相关文章:

angular - 在index.html内的Angular 6中使用font-awesome图标

angularjs - 我可以一起使用 angular2 和 Thymeleaf 吗?

javascript - 找不到 Express.js 路由

django - 如何在 Django 博客中首先显示最近的帖子?

javascript - Angular2 - 异常 : Route config should contain exactly one "component"

python - 对查询集进行排序的好方法? - Django

ruby-on-rails - Rails 3 中类似 Stack Overflow 的 URL 路由

routes - Laravel 路由组使用或中间件的条件

django 1.2 教程、书籍和资源?

javascript - 无法在 Django 模板 html 脚本中将 python 字典用作 JSON