学习使用"Django REST framework"打造RESTful API接口——第一节 quickstart
来源:互联网 发布:aa录音软件插件 编辑:程序博客网 时间:2024/05/16 11:48
本文的操作是为了快速建立一个Django项目的REST接口,然后看看效果,让你更有信心地使用这个框架。里面有很多新的概念在后面会慢慢介绍。
准备开发环境
本人平时上班时使用的是windows进行开发。这里介绍windows下的开发环境,MacOS下也是类似的。
本文假设大家都已经比较熟悉地掌握Python和Django,至少可以把Django服务起起来,自己做过一些小型网站。
使用Django REST framework来设计RESTful API,因为这个框架里面用到了six模块,Django1.4.5以上的版本才包含这个模块,所以我使用的是Django 1.4.16。安装方法:pip install django==1.4.16。
安装Django REST framework:pip install djangorestframework
Python: 使用2.7
IDE选择了PyCharm,版本是3.4。
1 创建项目
用PyCharm创建项目,名字为rest。位置自己设置,项目类型当然是Django,编译器就选择自己电脑上安装的Python 2.7.6
点“OK”以后PyCharm要求你创建一个app,我们创建一个叫"quickstart"的app。
创建完以后,项目的结构就是这个样子的:
这个里面可以创建数据库里的表了,Django数据库怎么配置可以参考官方文档。REST framework的官网上的例子用的是Django 1.7, 所以使用python manage.py migrate来生成model对应的表,然后用python manage.py createsuperuser创建超级用用户。 但是我用的是Django 1.4.16,所以命令不一样。我们在PyCharm里面选择Tools->run manage.py task,然后输入syncdb。这样就会创建表,并且提示你创建一个超级用户。
到此为止项目已经创建完成。
2 Serializers 序列化
在创建序列化,在此之前我们先创建一个model文件,路径是rest/quickstart/serializers.py
from 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')我们这里用到了一个relationship叫HyperlinkedModelSerializer,你也可以使用其他的relationship,但是hyperlinked relations是比较符合RESTful 设计规范的。
3 Views 视图
设计一个视图来展示我们的API接口。创建一个文件,路径是rest/quickstart/views.py
from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom quickstart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet): """ API endpoint that allows users to be viewed or edited. """ queryset = User.objects.all() serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet): """ API endpoint that allows groups to be viewed or edited. """ queryset = Group.objects.all() serializer_class = GroupSerializer这里用了ViewSet,把所有功能相似的view放在一起。其他的地方为什么这样写可以暂时不管。
4 URLs
现在要添加url,修改rest/urls.py文件。
from 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 browseable API.urlpatterns = +[ url(r'^', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))]要注意,这里的urlpatterns要用+=,因为你很可能还有自己其他的一些urlpatterns参数,不能完全像官网那样用等于号。
5 Settings
修改rest/settings.py,添加一个rest_framework APP和一个REST_FRAMEWORK 变量。
INSTALLED_APPS = ( ... 'rest_framework',)REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',), 'PAGINATE_BY': 10}
6 测试接口
现在可以启动项目,测试一下接口了。在浏览器上输入http://127.0.0.1:8000/users/,看到了user的API接口。
- 学习使用"Django REST framework"打造RESTful API接口——第一节 quickstart
- django rest framework quickstart
- Django REST framework-Quickstart
- 利用 Django REST framework 编写 RESTful API
- django rest framework--quickstart[中文文档]
- Django Rest Framework 3.3.2 开发 RESTful API
- Django REST framework API
- Django Rest framework-学习
- Django REST framework-教程00-quickstart原创翻译
- Django REST framework API开发
- 使用Django REST Framework来快速实现API调用服务——下篇(编写API服务)
- 使用Django REST Framework来快速实现API调用服务——上篇(运行环境和模型层)
- Django Rest framework学习(一)
- Django rest framework 学习笔记
- Django REST framework使用案例
- Django REST/ Django RESTful
- Django Rest FrameWork 全部API简述
- django rest framework使用django-filter
- iOS 通过代码关闭应用程序
- 多重反馈型高通滤波器
- 第十五周项目 3 在OJ上玩指针(3—指针当形参)
- 1.Qt 中 “C” 的记录; 2.创建动态链接库
- 单向链表
- 学习使用"Django REST framework"打造RESTful API接口——第一节 quickstart
- Android Property Animation
- 图像相似性检测入门
- 霍夫变换
- 第十四周OJ项目之杨辉三角
- 第十五周项目三-OJ题目(4)
- qt编译之后警告某参数未使用(warning: unused parameter)
- String
- 【Lua基础】Lua入门24式