真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

DjangoRESTframework怎么使用

本篇文章給大家分享的是有關(guān)Django REST framework怎么使用,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

創(chuàng)新互聯(lián)長(zhǎng)期為1000多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為昆山企業(yè)提供專業(yè)的網(wǎng)站制作、做網(wǎng)站,昆山網(wǎng)站改版等技術(shù)服務(wù)。擁有10余年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

我們將使用 django-rest 創(chuàng)建一個(gè)簡(jiǎn)單的API,以允許管理員用戶查看和編輯系統(tǒng)中的user和group。

創(chuàng)建一個(gè)項(xiàng)目

創(chuàng)建一個(gè)名為tutorial的Django項(xiàng)目,然后啟動(dòng)一個(gè)名為quickstart的新應(yīng)用程序,在你的電腦找到一個(gè)合適的位置執(zhí)行這些命令。

mkdir tutorialcd tutorial
# Create a virtual environment to isolate our package dependencies locallypython3 -m venv envsource env/bin/activate  # On Windows use `env\Scripts\activate`
# Install Django and Django REST framework into the virtual environmentpip install djangopip install djangorestframework
# Set up a new project with a single applicationdjango-admin startproject tutorial .  # Note the trailing '.' charactercd tutorialdjango-admin startapp quickstartcd ..

項(xiàng)目目錄結(jié)構(gòu)是這樣的

$ pwd/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

應(yīng)用程序是在項(xiàng)目目錄中創(chuàng)建的,這可能看起來很不尋常。使用項(xiàng)目的名稱空間可以避免與外部模塊的名稱沖突(這超出了快速入門的范圍)。

現(xiàn)在先同步你的數(shù)據(jù)庫:

python manage.py migrate

我們還將創(chuàng)建一個(gè)名為admin的初始用戶,其密碼為password123。稍后,我們將在示例中驗(yàn)證該用戶。

python manage.py createsuperuser --email admin@example.com --username admin

一旦你建立了一個(gè)數(shù)據(jù)庫,并創(chuàng)建了初始用戶,準(zhǔn)備開始,打開應(yīng)用程序的目錄。

Serializers

首先,我們將定義一些序列化器。讓我們創(chuàng)建一個(gè)名為tutorial/quickstart/serializer .py的新模塊,用于數(shù)據(jù)表示。serializers主要是驗(yàn)證前端傳過來的數(shù)據(jù)是否正確,符合后端接口api接口的要求。開發(fā)中,不要相信前端傳過來的任何數(shù)值,都要做字段的類型和是否合法校驗(yàn)。

from django.contrib.auth.models import User, Groupfrom 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']

注意,我們?cè)谶@里使用的是HyperlinkedModelSerializer的超鏈接關(guān)系。您也可以使用主鍵和其他各種關(guān)系,但是超鏈接是很好的RESTful設(shè)計(jì)。

Views

好的,我們最好寫一些視圖。打開tutorial/quickstart/views.py,開始輸入。

from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom 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

我們不是編寫多個(gè)視圖,而是將所有常見的行為分組到稱為viewset的類中。

如果需要的話,我們可以很容易地將它們分解成單獨(dú)的視圖,但是使用viewset可以使視圖邏輯組織良好,并且非常簡(jiǎn)潔。

Urls

下面,我們來連接API url。在tutorial/urls.py

from django.urls import include, pathfrom rest_framework import routersfrom 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'))]

因?yàn)槲覀兪褂玫氖莢iewset而不是視圖,所以我們可以為我們的API自動(dòng)生成URL conf,只需將viewset注冊(cè)到router類即可。

同樣,如果我們需要對(duì)API URL有更多的控制,我們可以簡(jiǎn)單地使用常規(guī)的基于類的視圖,并顯式地編寫URL conf。

最后,我們?cè)赽rowsable API中包含了默認(rèn)的login和logout視圖。這是可選的,但是如果您的API需要身份驗(yàn)證,并且希望使用browsable API,那么這是非常有用的。

Pagination

分頁允許您控制每個(gè)頁面返回多少對(duì)象。要啟用它,請(qǐng)將以下行添加到tutorial/settings.py中

REST_FRAMEWORK = {    'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination',    'PAGE_SIZE': 10}

Settings

在INSTALLED_APPS中添加'rest_framework'。設(shè)置模塊將在tutorial/settings.py中

INSTALLED_APPS = [
   ...
   'rest_framework',]

到這里,我們的接口代碼部分就編寫完成了,我們可以測(cè)試寫的接口是否符合前端要求了。

python manage.py runserver

使用瀏覽器訪問 【http://127.0.0.1:8000/users/】 ,用戶名和密碼是你之前創(chuàng)建的  admin   password123 。

看到下面這個(gè)效果:

Django REST framework怎么使用

以上就是Django REST framework怎么使用,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


當(dāng)前文章:DjangoRESTframework怎么使用
本文網(wǎng)址:http://weahome.cn/article/jgjdgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部