DjangoRESTFramework教程(⼀分钟⼊门)
引⾔
使⽤Django Rest Framework之前我们要先知道,它是什么,能⼲什么⽤?
引⽤官⽅⼀句话:Django REST框架是⽤于构建Web API的功能强⼤且灵活的⼯具包。
那为什么要使⽤Rest Framework?
Django REST Framework可以在Django的基础上迅速实现API,并且⾃⾝还带有WEB的测试页⾯,可以⽅便的测试⾃⼰的API。
Web应⽤模式
我们开发django项⽬时,经常会接触的接⼝这个东西,那么django-web开发接⼝是怎样呢? 先了解⼀下web前后端开发模式,这篇⽂章是我发布在CSDN上的⼀篇简单叙述django开发模式。
总体上就是:
web应⽤模式分两种:
1. 前后端不分离
在前后端不分离的引⽤模式中,前端页⾯看到的效果都是由后端控制的,由后端页⾯渲染或者重定向,也就是后端需要控制前端的展⽰,前端与后端的耦合度很⾼,这种模式⽐较适合纯⽹页应⽤,但是后端对接APP时,App可能并不需要后端返回⼀个HTML⽹页,⼆仅仅是数据本⾝,所以后端原本返回⽹页的接⼝不在适⽤前端APP应⽤,为了对接APP后端嗨需再开发⼀套接⼝。
这个可以看我之前写的DJango博客就可以知道,每次返回时都是使⽤render 或者redirect来返回的,需要带上HTML页⾯和参数
2. 前后端分离
在前后端分离的应⽤模式中,后端仅返回前端所需要的数据,不再渲染HTML页⾯,不再控制前端的效果,只要前端⽤户看到什么效果,从后端请求的数据如何加载到前端中,都由前端⾃⼰决定,⽹页有⽹页⾃⼰的处理⽅式,APP有APP的处理⽅式,但⽆论哪种前端所需要的数据基本相同,后端仅需开发⼀套逻辑对外提供数据即可,在前后端分离的应⽤模式中,前端与后端的耦合度相对较低
在前后端分离的应⽤模式中,我们通常将后端开发的每⼀视图都成为⼀个接⼝,或者API,前端通过访问接⼝来对数据进⾏增删改查
如果项⽬的需求是后⼀种情况的话,那么就可以⽤到Django Rest Framework了。
感兴趣的可以参考官⽅资料:,如果看不懂英⽂的伙伴,可以参考rest的中⽂⽂档:
Django REST Framework项⽬
1.打开pycharm编辑器,新建项⽬,选择如下:
这⾥虚拟环境是django_rest,如果看不懂,可以参考我前⾯写的的⽂章。
2.建好之后的项⽬结构如下:
在创建的虚拟环境中安装Django REST framework:
开发步骤
上⾯已经安装好环境和包,现在就开始开发了。
1.⾸先配置setting⽂件,加⼊rest_framework应⽤。
2.全局设置,分页和API使⽤权限问题,指定管理员使⽤:
# 设置权限策略:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAdminUser',
],
'PAGE_SIZE': 10
}
3.数据迁移
4.创建管理员账号:
5. 创建数据序列化,主要来展⽰数据:
在api应⽤下⾯新建serializers.py⽂件
代码:
dels import User, Group
pycharm安装教程和使用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')
说明:serializers⽤户定义API表现形式,⽐如返回哪些字段,什么格式等,这⾥是序列化django⾃带的User和Group。
6.创建视图函数:
dels import User, Group
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
"""
允许⽤户查看或编辑的API路径。
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
"""
允许组查看或编辑的API路径。
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
7.在django_restAPI⽬录下url.py中,添加api的路由配置:
f.urls import url, include
from rest_framework import routers
from tutorial.quickstart import views
router = routers.DefaultRouter()
# 使⽤⾃动URL路由连接我们的API。
# 另外,我们还包括⽀持浏览器浏览API的登录URL。
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]
8.到此所有东西都已经写完,然后我们运⾏runserver命令:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论