Django-rest-framework 01
写在前面
Django-rest-framework的官方文档
https://www.django-rest-framework.org/
Django-rest-framework的中文翻译文档
http://www.sinodocs.cn/tutorial/quickstart.html
如果django零基础可以先看看这篇文章
https://blog.csdn.net/weixin_42216028/article/details/101552584
1、开始使用接口框架之前
①先创建一个新的django应用
python manage.py startapp REST
②在setting里注册
③为REST造一个路由
2、开始安装、配置
①安装djangorestframework
pip install djangorestframework
②同步数据库
python manage.py migrate
2.1、创建一个序列化器
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
2.2、视图获取用户和用户组
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
# 导入创建的序列化器
from REST.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
queryset = Group.objects.all()
serializer_class = GroupSerializer
2.3、路由
①先在根路由上注册REST这个应用
②再到REST/urls.py,组织API URLs
from REST import views
from django.urls import include, path
from rest_framework import routers
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
urlpatterns = [
path('', include(router.urls)),
path('rt/', include('rest_framework.urls', namespace='rt')),
]
2.4、注册rest_framework
添加 ‘rest_framework’ 到 INSTALLED_APPS中。这项配置位于 untitled/settings.py中
2.5、添加分页器
分页器允许你控制每页返回的数据条数。添加以下配置到untitled/settings.py中使之生效。
REST_FRAMEWORK = {
'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',
'PAGE_SIZE': 10
}
3、开始运行
python manage.py runserver
3.1、如果报下图这样的错误
错误原因:
URL路径可以是任何你想要的,
但你必须包括'rest_framework.urls'与'rest_framework'命名空间。
在Django 1.9+中可以省略命名空间,REST框架将为你设置。
4、Django-rest-framework实现了什么
5、创建一个book表
REST/models.py
from django.db import models
class Book(models.Model):
b_name = models.CharField(max_length=32)
b_price = models.FloatField(default=1)
序列化,REST/serializers.py
视图,REST/views.py
路由,REST/urls.py
迁移
#生成迁移文件:
python manage.py makemigrations
#执行迁移文件:
python manage.py migrate
运行
python manage.py runserver
访问:books的连接就出来
写入一本书的数据
查看刚刚写入的数据