欢迎来到天天文库
浏览记录
ID:41385100
大小:607.49 KB
页数:54页
时间:2019-08-23
《Django-REST-framework教程中文版》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、TableofContents介绍1.1第零章-快速入门1.2第一章-序列化1.3第二章-Requests和Responses1.4第三章-类视图1.5第四章-认证和权限1.6第五章-Relationships和Hyperlinked1.7第六章-ViewSets和Routers1.81介绍Django-REST-framework教程中文版django-rest-framework,是一套基于Django的REST框架,目前仅计划翻译教程部分,至于API部分时间充足的话也会进行翻译。本文仅是个人阅读文档的产物,不
2、准确的地方还请大家指正。另外各位看官请注意,本文基于Django1.9以及restframework-v3.3.3版本,很可能您阅读本文时候官网文档已经产生变化了。更多翻译文章、技术文章请移步本人博客。2016-06-242第零章-快速入门快速入门在这里我们创建一个简单的API,让管理员查看、编辑用户和组信息。项目设置新建名为tutorial的django项目并在其中建立一个名为quickstart的APP:#新建目录mkdirtutorialcdtutorial#新建虚拟环境virtualenvenvsource
3、env/bin/activate#Windows使用`envScriptsactivate`#在虚拟环境中安装依赖pipinstalldjangopipinstalldjangorestframework#新建项目django-admin.pystartprojecttutorial.#注意后面的'.'cdtutorialdjango-admin.pystartappquickstartcd..使用下面的命令创建表:pythonmanage.pymigrate然后创建一个用户名为admin密码password1
4、23的管理员:pythonmanage.pycreatesuperuser以上设置完成后,进入APP的目录来编写代码...3第零章-快速入门序列化首先我们创建一个文件tutorial/quickstart/serializers.py来编写序列化相关的代码:fromdjango.contrib.auth.modelsimportUser,Groupfromrest_frameworkimportserializersclassUserSerializer(serializers.HyperlinkedModelSe
5、rializer):classMeta:model=Userfields=('url','username','email','groups')classGroupSerializer(serializers.HyperlinkedModelSerializer):classMeta:model=Groupfields=('url','name')注意在上面的代码中我们使用了HyperlinkedModelSerializer来建立超链接关系,你也可以使用主键或其他关系,但hyperlinking是一个好的REST
6、ful设计。Views现在让我们来编写视图文件tutorial/quickstart/views.py:4第零章-快速入门fromdjango.contrib.auth.modelsimportUser,Groupfromrest_frameworkimportviewsetsfromtutorial.quickstart.serializersimportUserSerializer,GroupSerializerclassUserViewSet(viewsets.ModelViewSet):"""查看、编辑用户
7、的界面"""queryset=User.objects.all().order_by('-date_joined')serializer_class=UserSerializerclassGroupViewSet(viewsets.ModelViewSet):"""查看、编辑组的界面"""queryset=Group.objects.all()serializer_class=GroupSerializer我们把许多常见的操作都封装在了类ViewSets中,这样就不用编写重复代码了。当然你可以按照自己的需求编写vi
8、ew,但使用ViewSets可以保持view代码的简洁以及逻辑的清晰。URLs接下来编写tutorial/urls.py:5第零章-快速入门fromdjango.conf.urlsimporturl,includefromrest_frameworkimportroutersfromtutorial.quickstartimportviewsrouter=r
此文档下载收益归作者所有