本文研究的主要是Django rest framework的相關內容,分享了example,具體如下。
Django REST框架是構建Web API的強大而靈活的工具包。
您可能希望使用REST框架的一些原因:
- Web瀏覽的API是您的開發人員的巨大的可用性勝利。
- 驗證策略包括OAuth1a和OAuth2的包。
- 支持ORM和非ORM數據源的序列化。
- 如果不需要功能更強大的功能,可以自定義一切 - 只需使用基于功能的常規視圖。
- 廣泛的文檔和極好的社區支持。
- 由Mozilla,Red Hat,Heroku和Eventbrite等國際知名公司使用和信賴。
Requirements
REST框架需要以下內容:
- Python(2.7,3.2,3.3,3.4,3.5)
- Django(1.8,1.9,1.10)
以下軟件包是可選的:
- coreapi(1.32.0+) - 支持模式生成。
- Markdown(2.1.0+) - 可瀏覽API的Markdown支持。
- django-filter(1.0.1+) - 過濾支持。
- django-crispy-forms - 改進的HTML顯示過濾。
- django-guardian(1.1.1+) - 對象級權限支持。
Installation
Install using pip, including any optional packages you want…
1
2
3
|
pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django - filter # Filtering support |
Add'rest_framework'to your INSTALLED_APPS setting.
1
2
3
4
|
INSTALLED_APPS = ( ... 'rest_framework' , ) |
如果您打算使用可瀏覽的API,您可能還需要添加REST框架的登錄和注銷視圖。 將以下內容添加到您的根urls.py文件中。
1
2
3
4
|
urlpatterns = [ ... url(r '^api-auth/' , include( 'rest_framework.urls' , namespace = 'rest_framework' )) ] |
請注意,URL路徑可以是任何您想要的,但您必須在rest_framework的命名空間中包含“rest_framework.urls”。 您可以在Django 1.9+中省略命名空間,REST框架將為您設置。
Example
我們來看一下使用REST框架構建一個簡單的模型支持的API的一個簡單例子。
我們將創建一個讀寫API來訪問我們項目用戶的信息。
REST框架API的任何全局設置都保存在名為REST_FRAMEWORK的單個配置字典中。 首先將以下內容添加到settings.py模塊中:
1
2
3
4
5
6
7
|
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' ] } |
不要忘了確保你還在你的INSTALLED_APPS中添加了rest_framework。
我們已經準備好創建我們的API了。 這是我們項目的根urls.py模塊:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
from django.conf.urls import url, include from django.contrib.auth.models import User from rest_framework import routers, serializers, viewsets #Serializers定義API表示。 class UserSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = User fields = ( 'url' , 'username' , 'email' , 'is_staff' ) #ViewSets定義視圖行為。 class UserViewSet(viewsets.ModelViewSet): queryset = User.objects. all () serializer_class = UserSerializer #路由器提供了一種自動確定URL conf的簡單方法。 router = routers.DefaultRouter() router.register(r 'users' , UserViewSet) #使用自動網址路由連接我們的API。 # 另外,我們還包括可瀏覽的API的登錄URL。 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。 如果您使用右上角的登錄控件,您還可以從系統添加,創建和刪除用戶。
總結
以上就是本文關于Django rest framework基本介紹的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
原文鏈接:http://blog.csdn.net/heatdeath/article/details/71105124