您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關Django REST framework怎么使用,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
我們將使用 django-rest 創建一個簡單的API,以允許管理員用戶查看和編輯系統中的user和group。
創建一個項目
創建一個名為tutorial的Django項目,然后啟動一個名為quickstart的新應用程序,在你的電腦找到一個合適的位置執行這些命令。
mkdir tutorial
cd tutorial
# Create a virtual environment to isolate our package dependencies locally
python3 -m venv env
source env/bin/activate # On Windows use `env\Scripts\activate`
# Install Django and Django REST framework into the virtual environment
pip install django
pip install djangorestframework
# Set up a new project with a single application
django-admin startproject tutorial . # Note the trailing '.' character
cd tutorial
django-admin startapp quickstart
cd ..
項目目錄結構是這樣的
$ pwd<some path>/tutorial$ find .../manage.py./tutorial./tutorial/__init__.py./tutorial/quickstart./tutorial/quickstart/__init__.py./tutorial/quickstart/admin.py./tutorial/quickstart/apps.py./tutorial/quickstart/migrations./tutorial/quickstart/migrations/__init__.py./tutorial/quickstart/models.py./tutorial/quickstart/tests.py./tutorial/quickstart/views.py./tutorial/settings.py./tutorial/urls.py./tutorial/wsgi.py
應用程序是在項目目錄中創建的,這可能看起來很不尋常。使用項目的名稱空間可以避免與外部模塊的名稱沖突(這超出了快速入門的范圍)。
現在先同步你的數據庫:
python manage.py migrate
我們還將創建一個名為admin的初始用戶,其密碼為password123。稍后,我們將在示例中驗證該用戶。
python manage.py createsuperuser --email admin@example.com --username admin
一旦你建立了一個數據庫,并創建了初始用戶,準備開始,打開應用程序的目錄。
Serializers
首先,我們將定義一些序列化器。讓我們創建一個名為tutorial/quickstart/serializer .py的新模塊,用于數據表示。serializers主要是驗證前端傳過來的數據是否正確,符合后端接口api接口的要求。開發中,不要相信前端傳過來的任何數值,都要做字段的類型和是否合法校驗。
from django.contrib.auth.models import User, Group
from rest_framework import serializers
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ['url', 'username', 'email', 'groups']
class GroupSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Group
fields = ['url', 'name']
注意,我們在這里使用的是HyperlinkedModelSerializer的超鏈接關系。您也可以使用主鍵和其他各種關系,但是超鏈接是很好的RESTful設計。
Views
好的,我們最好寫一些視圖。打開tutorial/quickstart/views.py,開始輸入。
from django.contrib.auth.models import User, Group
from rest_framework import viewsets
from tutorial.quickstart.serializers import UserSerializer, GroupSerializer
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
class GroupViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows groups to be viewed or edited.
"""
queryset = Group.objects.all()
serializer_class = GroupSerializer
我們不是編寫多個視圖,而是將所有常見的行為分組到稱為viewset的類中。
如果需要的話,我們可以很容易地將它們分解成單獨的視圖,但是使用viewset可以使視圖邏輯組織良好,并且非常簡潔。
Urls
下面,我們來連接API url。在tutorial/urls.py
from django.urls import include, path
from rest_framework import routers
from tutorial.quickstart import views
router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)
# Wire up our API using automatic URL routing.
# Additionally, we include login URLs for the browsable API.
urlpatterns = [
path('', include(router.urls)),
path('api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
因為我們使用的是viewset而不是視圖,所以我們可以為我們的API自動生成URL conf,只需將viewset注冊到router類即可。
同樣,如果我們需要對API URL有更多的控制,我們可以簡單地使用常規的基于類的視圖,并顯式地編寫URL conf。
最后,我們在browsable API中包含了默認的login和logout視圖。這是可選的,但是如果您的API需要身份驗證,并且希望使用browsable API,那么這是非常有用的。
Pagination
分頁允許您控制每個頁面返回多少對象。要啟用它,請將以下行添加到tutorial/settings.py中
REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', 'PAGE_SIZE': 10}
Settings
在INSTALLED_APPS中添加'rest_framework'。設置模塊將在tutorial/settings.py中
INSTALLED_APPS = [
...
'rest_framework',]
到這里,我們的接口代碼部分就編寫完成了,我們可以測試寫的接口是否符合前端要求了。
python manage.py runserver
使用瀏覽器訪問 【http://127.0.0.1:8000/users/】 ,用戶名和密碼是你之前創建的 admin password123 。
看到下面這個效果:
以上就是Django REST framework怎么使用,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。