django 序列化-rest_framework

前置条件:

1.对应的框架都安装成功

2.django的超级用户已经创建成功

需要修改的地方:

1.在setting中注册“rest_framework”到INSTALLED_APPS 即:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework', #添加进来
    'applicationName', #这是自己新建应用的名字
]

2.还要在setting中添加

REST_FRAMEWORK = {
    'DEFAULT_PERMISSION_CLASSES': [
        # 'rest_framework.permissions.IsAdminUser',
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly',
    ],
    'PAGE_SIZE': 10
}

在serializers Model的时候 大家一定要注意:

class Cityserializers(serializers.ModelSerializer):
    class Meta:
        model=City
        fields = '__all__'

除了类名的名字可以自定义外,其他都是官方已经规定好了,其他python和django的版本不清楚是否规避了这一点,不然会报一下错误:

1.

Exception Value: Class CrawlerSerializers missing "Meta" attribute

2.should either include a `queryset` attribute, or override the `get_queryset()` method.

3.错误类型:return Response(data)
TypeError: init() takes 1 positional argument but 2 were given

原因:导包错误
from requests import Response

解决办法:重新导包
from rest_framework.response import Response
 

奇怪的地方:

class CtiyView(viewsets.ModelViewSet):
      queryset = City.objects.all()
      serializer_class=Cityserializers

这里的objects中为啥写它的时候,不能自动调出它来?

おすすめ

転載: blog.csdn.net/testManger/article/details/122084244