一、简介
Django REST框架是构建Web API的强大而灵活的工具包。
使用REST框架的一些原因:
- 该网站可浏览API是你的开发人员一个巨大的可用性胜利。
- 验证策略包括OAuth1a和OAuth2的包。
- 序列化,同时支持ORM和非ORM数据源。
- 如果不需要功能更强大的功能,可以自定义一切 - 只需使用基于功能的常规视图。
- 广泛的文档和极好的社区支持。
- 由Mozilla,Red Hat,Heroku和Eventbrite等国际知名公司使用和信赖。
二、要求
REST框架需要以下内容:
- Python(2.7,3.2,3.3,3.4,3.5)
- Django(1.8,1.9,1.10)
三、安装
安装使用pip
,包括您想要的任何可选包...
pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support # 豆瓣源,安装快 pip3 install djangorestframework -i http://pypi.douban.com/simple --trusted-host pypi.douban.comdjangorestframework
添加'rest_framework'
到您的INSTALLED_APPS
设置。
INSTALLED_APPS = (
...
'rest_framework',
)
如果您打算使用可浏览的API,您可能还需要添加REST框架的登录和注销视图。将以下内容添加到您的根urls.py
文件中。
urlpatterns = [
...
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
请注意,URL路径可以是任何你想要的,但你必须包括'rest_framework.urls'
与'rest_framework'
命名空间。您可以在Django 1.9+中省略命名空间,REST框架将为您设置。
例如:
我们来看一下使用REST框架构建一个简单的模型支持的API的一个简单例子。
我们将创建一个读写API来访问我们项目用户的信息。
任何REST框架API的全局设置都保存在一个名为的单一配置字典中REST_FRAMEWORK
。通过在您的settings.py
模块中添加以下内容开始:
这个要添加到Django项目的setting里面
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}
不要忘了确保你也添加rest_framework
到你的INSTALLED_APPS
。
我们已经准备好创建我们的API了。这是我们项目的根urls.py
模块:from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets
from crm import models # 导入你的数据库
# Serializers define the API representation.
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = models.UserProfile # 和数据库表进行关联
fields = ('url', 'username', 'email', 'is_staff') # 控制数据库显示的字段
# ViewSets define the view behavior.
class UserViewSet(viewsets.ModelViewSet):
# 注意:queryset和serializer 两个字段名一定要是这两个不要改
queryset = User.objects.all()
serializer_class = UserSerializer
# Routers provide an easy way of automatically determining the URL conf.
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
# 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'))
]
您现在可以在http://127.0.0.1:8000/浏览器中打开该API ,并查看新的“用户”API。如果您使用右上角的登录控件,您还可以从系统添加,创建和删除用户。
更多详情请参考:http://www.django-rest-framework.org/