나는 Django
및 Django rest framework
을 사용하여 데이터베이스에서 데이터를 가져 오기 위해 여러 경로를 만들려고합니다.
지금 내 urls.py
파일에
router = routers.DefaultRouter()
router.register(r'cpuProjects', cpuProjectsViewSet, base_name='cpuProjects'),
이 반환
"cpuProjects": "http://127.0.0.1:8000/cpuProjects/"
그리고 나는 이것을 할 가능성이 있습니다 http://127.0.0.1:8000/cpuProjects/
=> 모든 프로젝트 http://127.0.0.1:8000/cpuProjects/ad
반환 => 특정 프로젝트 반환.
내 view.py에서 나는 이것을 가지고
class cpuProjectsViewSet(viewsets.ViewSet):
serializer_class = serializers.cpuProjectsSerializer
# lookup_field = 'project_name'
lookup_url_kwarg = 'project_name'
def list(self, request):
all_rows = connect_database()
serializer = serializers.cpuProjectsSerializer(instance=all_rows, many=True)
return Response(serializer.data)
def retrieve(self, request, project_name=None):
try:
opc = {'name_proj' : project_name }
all_rows = connect_database(opc)
except KeyError:
return Response(status=status.HTTP_404_NOT_FOUND)
except ValueError:
return Response(status=status.HTTP_400_BAD_REQUEST)
serializer = serializers.cpuProjectsSerializer(instance=all_rows, many=True)
return Response(serializer.data)
이제 내 URL이 이와 같은 것을 수락했으면합니다.
http://127.0.0.1:8000/cpuProjects/ad/comments
http://127.0.0.1:8000/cpuProjects/ad/ussing
http://127.0.0.1:8000/cpuProjects/ad/process
이를 위해이 새 URL을 추가합니다.
router.register(r'cpuProjects/([a-zA-Z0-9]+)$', cpuProjectsViewSet, base_name='cpuProjects'),
근데 지금 이걸 먹으면
http://127.0.0.1:8000/cpuProjects/ad/ussing
"페이지를 찾을 수 없음"을 얻습니다.
이 URL이 매개 변수를 가져 오기 위해 함수를 검색하기 위해 호출해야한다는 것을 이해했습니다. 왜이 오류가 발생합니까?
이 URL은 다음과 같은 프로세스를 수행하지 않습니다.
http://127.0.0.1:8000/cpuProjects/ad
미리 감사드립니다!
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다