文章目录
前言
小组决定使用vue前端+DRF后端进行编程,采用前后端分离的结构。这里先进行学习。
一、DRF的配置
1.创建项目
首先使用pycharm新建项目,选择虚拟环境。
创建后结构如下:(serializers.py是自己创建的)
2.在选择的虚拟环境中安装库
3.更改settings文件
增加’rest_framework’
在settings中设置权限策略
# 设置权限策略:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAdminUser',
],
'PAGE_SIZE': 10
}
4.数据迁移与管理员创建
cd到项目目录下
python manage.py migrate
python manage.py createsuperuser
5.创建数据序列化
在api下面新建serializers.py文件
我理解的是传过来的数据格式
其中model用了定义好的,也可以在models文件中自己写
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', 'is_staff')
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')
6.视图函数
在views中增加代码
理解的是对数据的操作
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from api.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.在项目目录下url.py中,添加api的路由配置:
不配置好url,页面会打不开
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
8.运行
在pycharm中运行后端
成功后点开链接即可查看
由于设置了权限策略,直接进入会返回403
登录刚才创建的超管账号后,可以看到两个url,分别是设置用户和设置用户组
进入第一个url,最下方可以添加用户,添加后的用户可在上方显示
在后台操作,pycharm下方都会有记录
完成了DRF的搭建
总结
Django rest framework在Django上进行了扩展,在python中有着很重的地位,学习DRF将为小组项目编程打下基础。