博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Django REST framework(官方说明文档翻译)(1快速开始 )
阅读量:5098 次
发布时间:2019-06-13

本文共 2946 字,大约阅读时间需要 9 分钟。

http://www.django-rest-framework.org/tutorial/quickstart/

第一部分:快速开始

我们将创建一个简单的api接口,用来给admin用户查看及编辑系统里面的用户和群组

1)新建项目

新建一个名为tutorial的django项目,然后新建一个名为 quickstart的app

1、这里我们打开编辑器pycharm,新建项目
xUB0Ei4.png

2、通过脚手架命令新建app

P5xeNwS.png
app创建在项目路径下面可能看起来会有点奇怪,这样做其实是为了防止和外部的命名空间冲突

3、接下来我们第一次来做数据库的同步

用到命令:python manage.py migrate
Txt4HqW.png

4、然后我们也需要初始化一个名为 admin ,密码为 password123 的用户。通过如下命令:

python manage.py createsuperuser --email admin@example.com --username admin

S9US9FL.png

当我们创建一个db且初始化用户创建好后,我们就可以打开app的目录开始coding了

2)序列化Serializers

首先我们要定义一些序列化类,我们需要在quickstart路径下新建一个名为serializers.py的文件并加入下面的代码,它将用于数据展示。

# serializers.pyfrom django.contrib.auth.models import User, Groupfrom rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):    class Meta:        model = User        fields = ('url', 'username', 'email', 'groups')class GroupSerializer(serializers.HyperlinkedModelSerializer):    class Meta:        model = Group        fields = ('url', 'name')

注意到了么?我们在上面的例子中用到了超链接关系类:HyperlinkedModelSerializer。当然你可以用基础的key和各种其他的关系,但超链接是一个很不错的RESTful设计

3)视图Views

是的,现在我们最好写一些视图。打开tutorial/quickstart/views.py文件开始敲下面的代码吧 :

# views.pyfrom django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom tutorial.quickstart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):    """    API endpoint that allows users to be viewed or edited.    """    queryset = User.objects.all().order_by('-date_joined')    serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet):    """    API endpoint that allows groups to be viewed or edited.    """    queryset = Group.objects.all()    serializer_class = GroupSerializer

我们将所有常用的功能组织到一个名为:ViewSets 的类中,而不是写很多view。 我们可以轻易的分解到单个view中如果我们需要的话,但是用viewsets 视图集可以保持良好的组织逻辑性和精确性。

4) URLs

好的,现在我们在tutorial/urls.py文件中接通的接口地址:

# urls.pyfrom django.conf.urls import url, includefrom rest_framework import routersfrom tutorial.quickstart import viewsrouter = routers.DefaultRouter()router.register(r'users', views.UserViewSet)router.register(r'groups', views.GroupViewSet)# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [    url(r'^', include(router.urls)),    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))]
  • 因为我们正在用viewsets视图集类而不是视图views类,所以我们可以给我们的接口自动生成url配置,只需要通过一个router类简单的注册下viewsets视图集类;
  • 再说一遍,如果我们需要更所的对API URLs的控制,我们仅仅只需要选择用常规的基于类的视图(class-based views),及显示的写URL conf。
  • 最后,我们这里还可以在浏览器上用默认的登录和登出视图接口。当然,这是可以选择的,但是如果你的api需要授权认证或者你想用浏览器接口,它就会变得很有用了。

5) 配置Settings

在tutorial/settings.py配置文件的INSTALLED_APPS块中加上'rest_framework':

INSTALLED_APPS = (    ...    'rest_framework',)

ok,这样我们就都搞定了!

6) 测试我们的web接口

我们现在准备测试我们创建的接口了,当然我们需要先在命令行启动我们的服务: python manage.py runserver

AZm2cGo.png

然后直接在浏览器中请求我们的接口服务吧,请求地址 http://127.0.0.1:8000/users/

v4Wic8e.png

如果你是通过浏览器调用接口的,确认下是不是登录了哈。

是的,先在看来DRF这个真的很棒,也很简单。
如果你想要更深入的理解如何使用DRF,请看下一章或

转载于:https://www.cnblogs.com/chengtch/p/9375229.html

你可能感兴趣的文章
uboot分析:uboot的启动过程分析
查看>>
tmux的简单快捷键
查看>>
springboot笔记04——读取配置文件+使用slf4j日志
查看>>
[Swift]LeetCode653. 两数之和 IV - 输入 BST | Two Sum IV - Input is a BST
查看>>
[Swift]LeetCode922.按奇偶排序数组 II | Sort Array By Parity II
查看>>
微信小程序的wxml文件和wxss文件在webstrom的支持
查看>>
Html5 离线页面缓存
查看>>
[php]在PHP中读取和写入WORD文档的代码
查看>>
WCF傻瓜模式写程序
查看>>
《绿色·精简·性感·迷你版》易语言,小到不可想象
查看>>
Java Web学习总结(13)Listener监听器
查看>>
开始Flask项目
查看>>
Ruby:多线程队列(Queue)下载博客文章到本地
查看>>
Android打包key密码丢失找回
查看>>
03 jQuery动画
查看>>
医药箱APP静态小项目
查看>>
安装使用eclipse
查看>>
VC6.0调试技巧(一)(转)
查看>>
用Chrome调试Android手机上的网页
查看>>
django 王中王8之踏青撒花
查看>>