Django REST framework

jopen 11年前發布 | 85K 次閱讀 Django REST Web框架

Django REST 框架可以輕松部署web APIs,其是一個聚健壯性與彈性于一體的web工具包。

以下所列可以作為選擇其的理由:

下面是生動的web實例.

BelowScreenshot from the browsable API

Screenshot

要求:

REST 需要以下部件:

  • Python (2.6.5+, 2.7, 3.2, 3.3)
  • Django (1.3, 1.4, 1.5, 1.6)

如下是可選組件:

注意: The oauth2 Python package is badly misnamed, and actually provides OAuth 1.0a support. Also note that packages required for both OAuth 1.0a, and OAuth 2.0 are not yet Python 3 compatible.

安裝

使用 pip, 其內包涵很多部件...

pip install djangorestframework
pip install markdown       # Markdown support for the browsable API. pip install django-filter  # Filtering support

...或者可以從github chone.

git clone git@github.com:tomchristie/django-rest-framework.git

將 'rest_framework' 添加到 INSTALLED_APPS setting中.

INSTALLED_APPS = (     ...     'rest_framework',        )

如果你想要使用web瀏覽器APIs并且想添加REST 框架的登出與登錄視圖. 將下面的code添加到 urls.py 文件中.

urlpatterns = patterns('',     ...     url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) )
注意:URL 路徑可以放在任何地方, 但是你必須把'rest_framework.urls' 包涵在 'rest_framework' 中.

列子:

迅速的看一下 用REST 框架 搭建的一個簡單的模塊APIs.

我們將創建一個提供讀寫users和groups的API .

任何設置為 REST框架的 API 都被放入一個named REST_FRAMEWORK的文件中. 然后把其添加到 settings.py module中:

REST_FRAMEWORK = {     # Use hyperlinked styles by default.     # Only used if the `serializer_class` attribute is not set on a view.     'DEFAULT_MODEL_SERIALIZER_CLASS':         'rest_framework.serializers.HyperlinkedModelSerializer',     # 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.defaults import url, patterns, includefrom django.contrib.auth.models import User, Group from rest_framework import viewsets, routers# ViewSets define the view behavior. class UserViewSet(viewsets.ModelViewSet):     model = User class GroupViewSet(viewsets.ModelViewSet):     model = Group # Routers provide an easy way of automatically determining the URL conf router = routers.DefaultRouter() router.register(r'users', UserViewSet) router.register(r'groups', GroupViewSet) # Wire up our API using automatic URL routing. # Additionally, we include login URLs for the browseable API. urlpatterns = patterns('',     url(r'^', include(router.urls)),     url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) )

快速開始

等不及開始了? 快速導航是一個簡易的步驟, 并可以創建REST框架的 APIs.

指南書:

The tutorial will walk you through the building blocks that make up REST framework. It'll take a little while to get through, but it'll give you a comprehensive understanding of how everything fits together, and is highly recommended reading.

API Guide

The API guide is your complete reference manual to all the functionality provided by REST framework.

主題:

REST 使用指南.

Development

If you want to work on REST framework itself, clone the repository, then...

Build the docs:

./mkdocs.py

Run the tests:

./rest_framework/runtests/runtests.py

To run the tests against all supported configurations, first install the tox testing tool globally, using pip install tox, then simply run tox:

tox

Support

For support please see the REST framework discussion group, try the #restframeworkchannel on irc.freenode.net, search the IRC archives, or raise a question on Stack Overflow, making sure to include the 'django-rest-framework' tag.

Paid support is available from DabApps, and can include work on REST framework core, or support with building your REST framework API. Please contact DabApps if you'd like to discuss commercial support options.

For updates on REST framework development, you may also want to follow the author on 推ter.

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!