mirror of
https://github.com/github/codeql.git
synced 2026-04-29 02:35:15 +02:00
Python: Add examples of class/function based views
This commit is contained in:
committed by
Rasmus Wriedt Larsen
parent
9bbf08ddcf
commit
095f896f95
@@ -11,5 +11,6 @@ router.register(r"bars", views.BarViewSet)
|
||||
urlpatterns = [
|
||||
path("", include(router.urls)),
|
||||
path("api-auth/", include("rest_framework.urls", namespace="rest_framework")),
|
||||
path("example/", views.example), # $routeSetup="example/"
|
||||
path("class-based-view/", views.MyClass.as_view()), # $routeSetup="lcass-based-view/"
|
||||
path("function-based-view/", views.function_based_view), # $routeSetup="function-based-view/"
|
||||
]
|
||||
|
||||
@@ -2,8 +2,13 @@ from .models import Foo, Bar
|
||||
from .serializers import FooSerializer, BarSerializer
|
||||
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.decorators import api_view
|
||||
from rest_framework.views import APIView
|
||||
from rest_framework.request import Request
|
||||
from rest_framework.response import Response
|
||||
|
||||
|
||||
# Viewsets
|
||||
# see https://www.django-rest-framework.org/tutorial/quickstart/
|
||||
class FooViewSet(viewsets.ModelViewSet):
|
||||
queryset = Foo.objects.all()
|
||||
serializer_class = FooSerializer
|
||||
@@ -13,8 +18,25 @@ class BarViewSet(viewsets.ModelViewSet):
|
||||
queryset = Bar.objects.all()
|
||||
serializer_class = BarSerializer
|
||||
|
||||
# class based view
|
||||
# see https://www.django-rest-framework.org/api-guide/views/#class-based-views
|
||||
|
||||
# this is pure django
|
||||
from django.http import HttpResponse, HttpRequest
|
||||
def example(request: HttpRequest):
|
||||
return HttpResponse("example")
|
||||
class MyClass(APIView):
|
||||
def initial(self, request, *args, **kwargs):
|
||||
# this method will be called before processing any request
|
||||
super().initial(request, *args, **kwargs)
|
||||
|
||||
def get(self, request):
|
||||
return Response("GET request")
|
||||
|
||||
def post(self, request):
|
||||
return Response("POST request")
|
||||
|
||||
|
||||
# function based view
|
||||
# see https://www.django-rest-framework.org/api-guide/views/#function-based-views
|
||||
|
||||
|
||||
@api_view(["GET", "POST"])
|
||||
def function_based_view(request: Request):
|
||||
return Response({"message": "Hello, world!"})
|
||||
|
||||
Reference in New Issue
Block a user