Three authentication component Django-rest framework framework

Source Analysis: Three certified components package

Component authentication configuration:

Model layer: models.py

class User(BaseModel):
    username = models.CharField(verbose_name='用户名', max_length=32)
    password = models.CharField(verbose_name='密码', max_length=64)


class Car(BaseModel):
    name = models.CharField(verbose_name='汽车品牌', max_length=32)
    price = models.DecimalField(verbose_name='价格', max_digits=11, decimal_places=2, default=1.00)

 Layer sequence: serializer.py

from rest_framework import serializers
from . import models
class UsersModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.User
        fields = ('username', 'password')
        extra_kwargs = {}

class CarsModelSerializer(serializers.ModelSerializer):
    class Meta:
        model = models.Car
        fields = ('name', 'price')
        extra_kwargs = {}

 

Routing layer: urls, .py

from django.conf.urls import url, include
from . import views
urlpatterns = [
    url(r'^users/(?P<pk>\d+)/', views.UsersRetrieveAPIView.as_view()),

    url(r'^cars/$', views.CarsGenericViewSet.as_view({'get': 'list'})),
    url(r'^cars/(?P<pk>\d+)/', views.CarsGenericViewSet.as_view({'get': 'retrieve'})),
]

View layer: views.py

from rest_framework Import generics, viewsets, as mixins
 from . Import Models, serializers 


# partial disabled: view class field may complete local control authentication_classes 
class UsersRetrieveAPIView (generics.RetrieveAPIView):
     # local deauthentication 
    authentication_classes = () 
    QuerySet = models.User.objects .filter (is_delete = False) 
    serializer_class = serializers.UsersModelSerializer 

from . Import authentication
 class CarsGenericViewSet (mixins.RetrieveModelMixin, mixins.ListModelMixin, viewsets.GenericViewSet):
     # 局部完成禁用
    authentication_classes = (authentication.TokenAuthentication, )
    queryset = models.Car.objects.filter(is_delete=False)
    serializer_class = serializers.CarsModelSerializer

 

Guess you like

Origin www.cnblogs.com/Gaimo/p/11704625.html