前置条件:
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中为啥写它的时候,不能自动调出它来?