Django rest framework基本介紹與程式碼範例,djangoframework

來源:互聯網
上載者:User

Django rest framework基本介紹與程式碼範例,djangoframework

本文研究的主要是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…

pip install djangorestframeworkpip 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架構的登入和登出視圖。 將以下內容添加到您的根urls.py檔案中。

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模組中:

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模組:

from django.conf.urls import url, includefrom django.contrib.auth.models import Userfrom 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基本介紹的全部內容,希望對大家有所協助。感興趣的朋友可以繼續參閱本站其他相關專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支援!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.