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

第一部分:快速开始

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

1)新建项目

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

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

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



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

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

用到命令:python manage.py migrate

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

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



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

2)序列化Serializers

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

# serializers.py
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') class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ('url', 'name')

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

3)视图Views

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

# views.py
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer class 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.py
from django.conf.urls import url, include
from rest_framework import routers
from tutorial.quickstart import views router = 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

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

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

是的,先在看来DRF这个真的很棒,也很简单。

如果你想要更深入的理解如何使用DRF,请看下一章或英文官方接口文档

Django REST framework(官方说明文档翻译)(1快速开始 )的更多相关文章

  1. Django REST framework 中文文档

    Django REST framework介绍 现在前后端分离的架构设计越来越流行,业界甚至出现了API优先的趋势. 显然API开发已经成为后端程序员的必备技能了,那作为Python程序员特别是把Dj ...

  2. Django REST framework快速入门(官方文档翻译翻译)

    开始 我们将创建一个简单的API来允许管理员用户查看和编辑系统中的用户和组. 项目设置 创建一个新的django项目,命名为:<tutorial>,然后创建一个新的应用程序(app),命名 ...

  3. Django REST framework快速入门指南

    项目设置 创建一个名为tutorial的新Django项目,然后开始一个名为quickstart的新应用程序. # Create the project directory mkdir tutoria ...

  4. django 1.8 官方文档翻译:13-12 验证器

    django 1.8 官方文档翻译:13-12 验证器 2015年09月20日 21:36:18 ApacheCN_飞龙 阅读数:639  https://blog.csdn.net/wizardfo ...

  5. django rest framework restful 规范

    内容回顾: . django请求生命周期 -> 执行遵循wsgi协议的模块(socket服务端) -> 中间件(路由匹配) -> 视图函数(业务处理:ORM.模板渲染) -> ...

  6. 6- vue django restful framework 打造生鲜超市 -完成商品列表页(下)

    Vue+Django REST framework实战 搭建一个前后端分离的生鲜超市网站 Django rtf 完成 商品列表页下 drf中的request和response drf对于django的 ...

  7. django rest framework 入门

    django rest framework 入门1-序列化 Serialization 分类: Python 2013-01-22 22:24 11528人阅读 评论(0) 收藏 举报 djangop ...

  8. 用Django Rest Framework和AngularJS开始你的项目

    Reference: http://blog.csdn.net/seele52/article/details/14105445 译序:虽然本文号称是"hello world式的教程&quo ...

  9. Django REST framework+Vue 打造生鲜超市(一)

    一.项目介绍 1.1.掌握的技术 Vue + Django Rest Framework 前后端分离技术 彻底玩转restful api 开发流程 Django Rest Framework 的功能实 ...

  10. Django REST framework+Vue 打造生鲜超市(四)

    五.商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django res ...

随机推荐

  1. Dapper 学习笔记

    一.基础 1.Dapper代码就一个SqlMapper.cs文件, 前人测试Dapper速度较快 的Orm,读取速度接近IDataReader,超过DataTable. 2.a.下载地址 https: ...

  2. jmeter 运行脚本报错 java.net.BindException: Address already in use

    在win下跑jmeter时,在聚合报告中出现错误.打开日志文件(前提是将日志写入了指定文件) 发现报错的原因为:java.net.BindException: Address already in u ...

  3. 开源api文档

    蒲公英——API文档 https://www.pgyer.com/doc/api

  4. 孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库

    孤荷凌寒自学python第五十八天成功使用python来连接上远端MongoDb数据库 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第四天.今天的感觉是,mongoDB数据 ...

  5. STL之list使用简介

    构造函数 list<int> c0; //空链表 list<); //建一个含三个默认值是0的元素的链表 list<,); //建一个含五个元素的链表,值都是2 list< ...

  6. JAVA中的使用Filter过滤器设置字符集

    Filter是什么? Filter不是一个Servlet,它可以叫做Servlet链,它可以用来改变一个request,修改一个response.它虽然不能产生一个response,但可以在一个req ...

  7. 有许多部分没有在cgroup中显示啊,current/high/low/min等等

    没看见current/high/low/min 在cgroup中的显示内容

  8. 【bzoj4974】字符串大师 逆模拟KMP

    题目描述 一个串T是S的循环节,当且仅当存在正整数k,使得S是$T^k$(即T重复k次)的前缀,比如abcd是abcdabcdab的循环节.给定一个长度为n的仅由小写字符构成的字符串S,请对于每个k( ...

  9. ZOJ 1081 Points Within | 判断点在多边形内

    题目: 给个n个点的多边形,n个点按顺序给出,给个点m,判断m在不在多边形内部 题解: 网上有两种方法,这里写一种:射线法 大体的思想是:以这个点为端点,做一条平行与x轴的射线(代码中射线指向x轴正方 ...

  10. 【HDU 3336 Count the string】

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission( ...