以前刚学django时硬生生使用了静态资源和接口分离的方法,实际使用中确定会很是不方便。因而发现了用于先后端分离,编写后台API的REST framework框架。这里作初步尝试
官方文档看起来很是入门
本次实践主要是根据官方文档步骤进行初步实践,其中加入一些本身学习时理解的注释,不能保证翻译正确,全部的参考连接都放在文末吧。可是!学习过程当中发现两处引用模块官网有误!代码中会标注出来
官方文档地址先放:
http://www.django-rest-framew...html
首先是安装django和djangorestframeworkpython
pip install django pip install djangorestframework
多数人都应该安装好了吧数据库
根据按官网demo安装应用django
django-admin.py startproject tutorial django-admin.py startapp quickstart
而后是数据库迁移后端
python manage.py migrate
接着建立管理员页面和用户api
python manage.py createsuperuser --email admin@example.com --username admin
定义一些配置,建立一个tutorial/quickstart/serializers.py
模块,编写以下代码浏览器
from django.contrib.auth.models import User, Group #引入django身份验证机制User模块和Group模块 from rest_framework import serializers #引入rest framework的serializers class UserSerializer(serializers.HyperlinkedModelSerializer): #继承超连接模型解析器 class Meta: model = User #使用User model fields = ('url', 'username', 'email', 'groups') #设置字段 class GroupSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Group #使用Group model fields = ('url', 'name')
在tutorial/quickstart/views.py
编写以下代码(render均可以注释掉了???)这里有一处官网引入模块错误
服务器
#from django.shortcuts import render from django.contrib.auth.models import User, Group #引入model from rest_framework import viewsets #引入viewsets,相似controllers # from tutorial.quickstart.serializers import UserSerializer, GroupSerializer 官网模块引入写法,有误 from quickstart.serializers import UserSerializer, GroupSerializer #引入刚刚定义的序列化器 # Create your views here. class UserViewSet(viewsets.ModelViewSet): queryset = User.objects.all().order_by('-date_joined') #集合 serializer_class = UserSerializer #序列化 class GroupViewSet(viewsets.ModelViewSet): queryset = Group.objects.all() serializer_class = GroupSerializer
在tutorial/urls.py
编写URL这里有一处官网引入模块错误
app
from django.contrib import admin from django.urls import path, re_path #rest from django.conf.urls import url, include from rest_framework import routers # from tutorial.quickstart import views 官网模块引入写法,有误 from quickstart import views router = routers.DefaultRouter() #路由 router.register(r'users', views.UserViewSet) #路由地址与接口配置 router.register(r'groups', views.GroupViewSet) #注:path是新写法,url为老写法,若要使用正则,则使用re_path urlpatterns = [ path('admin/', admin.site.urls), #rest re_path(r'^', include(router.urls)), #包含进路由配置的url url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) #浏览器测试接口配置 ]
tutorial/settings.py
下安装框架
INSTALLED_APPS = ( ... 'rest_framework', )
python manage.py runserver
启动服务器后浏览器输入http://127.0.0.1:8000
可进入接口测试页面
记得在右上角处点击登陆
django用户验证机制:https://docs.djangoproject.co...
什么是Serializer:http://www.django-rest-framew...
什么是Serializer relations:http://www.django-rest-framew...
什么是viewsets:http://www.django-rest-framew...
url和re_path中r是什么:https://www.cnblogs.com/xuchu...
url与path区别:https://blog.csdn.net/endless...