带你进入rest framework
这边声明一下,以下是参考官方文档来的。
新建项目
新建名为dimples的django项目
在其中建立一个名为astart的APP:
新建目录#新建目录mkdirdimplescddimples新建虚拟环境
virtualenvenvenv\Scripts\activate在虚拟环境中安装依赖
pipinstalldjangopipinstalldjangorestframework新建项目
django-admin.pystartprojectdimples.cddimplesdjango-admin.pystartappastartcd..创建表
pythonmanage.pymigrate创建管理员
pythonmanage.pycreatesuperuser序列化
首先创建一个文件dimples/astart/serializers.py来编写序列化相关的代码:
fromdjango.contrib.auth.modelsimportUser,Groupfromrest_frameworkimportserializersclassUserSerializer(serializers.HyperlinkedModelSerializer):classMeta:model=Userfields=('url','username','email','groups')classGroupSerializer(serializers.HyperlinkedModelSerializer):classMeta:model=Groupfields=('url','name')
HyperlinkedModelSerializer: 建立超链接关系。
dimples/astart/views.py编写视图文件
fromdjango.contrib.auth.modelsimportUser,Groupfromrest_frameworkimportviewsetsfromdimples.astart.serializersimportUserSerializer,GroupSerializerclassUserViewSet(viewsets.ModelViewSet):"""查看、编辑用户的界面"""queryset=User.objects.all().order_by('-date_joined')serializer_class=UserSerializerclassGroupViewSet(viewsets.ModelViewSet):"""查看、编辑组的界面"""queryset=Group.objects.all()serializer_class=GroupSerializer
ViewSets:封装许多常见的操作,减少重复代码。 保持代码的简洁以及逻辑的清晰。
dimples/urls.py:fromdjango.conf.urlsimporturl,includefromrest_frameworkimportroutersfromdimples.astartimportviewsrouter=routers.DefaultRouter()router.register(r'users',views.UserViewSet)router.register(r'groups',views.GroupViewSet)#使用URL路由来管理我们的API#另外添加登录相关的URLurlpatterns=[url(r'^',include(router.urls)),url(r'^api-auth/',include('rest_framework.urls',namespace='rest_framework'))]
使用了ViewSets可以通过使用Router类来自动生成URL配置信息。
Settings启用分页功能以及只有管理员能访问
INSTALLED_APPS=(...'rest_framework',)REST_FRAMEWORK={'DEFAULT_PERMISSION_CLASSES':('rest_framework.permissions.IsAdminUser',),'PAGE_SIZE':10}测试
Terminal中输入
python./manage.pyrunserver
使用命令行工具访问API
http-adimples:111111http://127.0.0.1:8000/users/
(venv)C:\Users\Administrator\PycharmProjects\dimples>http-adimples:111111http://127.0.0.1:8000/user/HTTP/1.0200OKAllow:GET,HEAD,OPTIONSContent-Length:91Content-Type:application/jsonDate:Wed,20Sep201711:31:17GMTServer:WSGIServer/0.1Python/2.7.13Vary:Accept,CookieX-Frame-Options:SAMEORIGIN{"groups":"http://127.0.0.1:8000/user/groups/","users":"http://127.0.0.1:8000/user/users/"}
确保登录状态下打开浏览器 127.0.0.1:8000/users/
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。