Không thể gọi django api sau khi deploy trên xampp apache

Chào các bạn, mình có một dự án django muốn deploy lên xampp, mình làm theo hướng dẫn ở này nhưng nó bị lỗi, mình không biết sửa thế nào hy vọng được giúp đỡ

book/models.py

from django.db import models

class Book(models.Model):
    name = models.CharField(max_length=255, blank=True, null=True)
    price = models.IntegerField(blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'book'

book/views.py

from rest_framework.generics import ListCreateAPIView
from rest_framework.permissions import IsAuthenticated
from .models import Book
from .serializers import BookSerializer


class ListAllBook(ListCreateAPIView):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
    permission_classes = [IsAuthenticated]

book/urls.py

from django.urls import path
from .views import ListAllBook

urlpatterns = [
    path("all-book", ListAllBook.as_view(), name="all-book"),
]

project/urls.py

# from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('auth/', include('djoser.urls')),
    path('auth/', include('djoser.urls.jwt')),
    path("api/book/", include("book.urls"))
]

Mình dùng djoser để xác thực. Các link của djoser thì chạy được nhưng cái book mình viết thì lỗi.
Mình thử dùng angular để gọi thử thì thấy nó tự động chuyển link http://localhost:80/api/book/all-book thành http://localhost/api/book/all-book

Chạy trên eclipse

enter image description here

Chạy trên xampp

enter image description here

enter image description here

Disclaim: tớ không biết gì về Django.
Theo như tutorial cậu đưa, thì cậu đang cố chạy Django trên apache dùng mod_wsgi, và cậu authorize ở application level, không phải ở web server level.
Cậu cần add thêm dòng này trong httpd.conf

WSGIPassAuthorization On

Nếu không, authorization header sẽ bị lược bỏ đi ở web server trước khi tới application.

Reference: https://modwsgi.readthedocs.io/en/develop/configuration-directives/WSGIPassAuthorization.html

4 Likes

Cám ơn bạn rất nhiều :heart_eyes:

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?