您好,登錄后才能下訂單哦!
小編給大家分享一下Django rest framework的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
具體如下。
Django REST框架是構(gòu)建Web API的強(qiáng)大而靈活的工具包。
您可能希望使用REST框架的一些原因:
Web瀏覽的API是您的開發(fā)人員的巨大的可用性勝利。
驗(yàn)證策略包括OAuth2a和OAuth3的包。
支持ORM和非ORM數(shù)據(jù)源的序列化。
如果不需要功能更強(qiáng)大的功能,可以自定義一切 - 只需使用基于功能的常規(guī)視圖。
廣泛的文檔和極好的社區(qū)支持。
由Mozilla,Red Hat,Heroku和Eventbrite等國際知名公司使用和信賴。
Requirements
REST框架需要以下內(nèi)容:
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 - 改進(jìn)的HTML顯示過濾。
django-guardian(1.1.1+) - 對象級權(quán)限支持。
Installation
Install using pip, including any optional packages you want…
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.
INSTALLED_APPS = ( ... 'rest_framework', )
如果您打算使用可瀏覽的API,您可能還需要添加REST框架的登錄和注銷視圖。 將以下內(nèi)容添加到您的根urls.py文件中。
urlpatterns = [ ... url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) ]
請注意,URL路徑可以是任何您想要的,但您必須在rest_framework的命名空間中包含“rest_framework.urls”。 您可以在Django 1.9+中省略命名空間,REST框架將為您設(shè)置。
Example
我們來看一下使用REST框架構(gòu)建一個簡單的模型支持的API的一個簡單例子。
我們將創(chuàng)建一個讀寫API來訪問我們項(xiàng)目用戶的信息。
REST框架API的任何全局設(shè)置都保存在名為REST_FRAMEWORK的單個配置字典中。 首先將以下內(nèi)容添加到settings.py模塊中:
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。
我們已經(jīng)準(zhǔn)備好創(chuàng)建我們的API了。 這是我們項(xiàng)目的根urls.py模塊:
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) #使用自動網(wǎng)址路由連接我們的API。 # 另外,我們還包括可瀏覽的API的登錄URL。 urlpatterns = [ url(r'^', include(router.urls)), url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
您現(xiàn)在可以在http://127.0.0.1:8000/瀏覽器中打開該API,并查看新的“用戶”API。 如果您使用右上角的登錄控件,您還可以從系統(tǒng)添加,創(chuàng)建和刪除用戶。
以上是“Django rest framework的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。