日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Django REST框架 -1

發布時間:2025/3/17 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Django REST框架 -1 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

項目設置

創建一個名為Django的新項目tutorial,然后啟動一個新的應用程序quickstart。

# Create the project directory

mkdir tutorial
cd tutorial # Create a virtualenv to isolate our package dependencies locally

virtualenv env
source env/bin/activate
# On Windows use `env\Scripts\activate`

# Install Django and Django REST framework into the virtualenv pip install django pip install djangorestframework # Set up a new project with a single application

django-admin.py startproject tutorial .
# Note the trailing '.' character 同級目錄下
cd tutorial
django-admin.py startapp quickstart
cd .. #下級目錄

現在第一次同步您的數據庫:

python manage.py migrate

我們還將創建一個以admin密碼命名的初始用戶password123。我們稍后將在該示例中驗證該用戶。

python manage.py createsuperuser

一旦你設置了一個數據庫,并且初始用戶創建并準備好了,打開應用程序的目錄,我們將得到編碼...

串行器

首先我們要定義一些序列化程序。我們創建一個名為tutorial/quickstart/serializers.py我們將用于我們的數據表示的新模塊。


from django.contrib.auth.models import User, Group
from rest_framework import serializers

class UserSerializer(serializers.HyperlinkedModelsSerializer):

class Meta:
    model = User
    fields = ('url','username','email','groups')


class GroupSerializers(serializers.HyperlinkedModelsSerializer):
  
  class Meta:
    model = Group
    fields = ('url','name')

請注意,在這種情況下,我們正在使用超鏈接關系HyperlinkedModelSerializer。您還可以使用主鍵和各種其他關系,但超鏈接是好的RESTful設計。

查看

對,我們最好再寫一些看法。打開tutorial/quickstart/views.py并打字。

from django.contrib.auth.models import User, Group

from rest_framework import viewsets

from tutorial.quickstart.serializers import UserSerializer, GroupSerializers

?

class UserViewSet(viewset.ModelViewSet):

  queryset = User.object.all().order_by('-date_joined')

  serializers_class = UserSerializer

?

class GroupViewSet(viewset.ModelsViewSet):

  queryset = Group.object.all()

  serializer_class = GroupSerializer

而不是寫多個視圖,我們將所有常見行為分組到被調用的類中ViewSets。

如果我們需要,我們可以輕松地將這些細節分解為個人觀點,但是使用視圖可以使視圖的邏輯很好地組織起來,并且非常簡潔。

?

網址

好的,現在我們來連接API的URL。到tutorial/urls.py...

from django.conf.urls import url, include

from rest_framework import routers

from tutrial.quickstart import views

?

router = routers.DefalutRouter()

router.register(r'user', views.UserViewSet)

router.register(r'group',views.GroupViewSet)

urlpatterns = [

  url(r'^', include(router.urls)),

  url(r'^api-auth/',include('rest_framework.urls', namespace='rest_framework'))

]

?

因為我們使用的是視圖而不是視圖,所以我們可以通過簡單地使用路由器類注冊該視圖來自動生成API的URL conf。

再次,如果我們需要對API URL的更多控制,我們可以簡單地將其下拉到使用常規的基于類的視圖,并明確地編寫URL conf。

最后,我們將包括默認登錄和注銷視圖,以便與可瀏覽的API一起使用。這是可選的,但如果您的API需要身份驗證,并且您想要使用可瀏覽的API,那么這是非常有用的。

設置

我們也想設置一些全局設置。我們想打開分頁,我們希望我們的API只能由管理員使用。設置模塊將在tutorial/settings.py

INSTALLED_APPS = (

  'rest_framework',

)

REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAdminUser', ], 'PAGE_SIZE': 10 }

好的,我們完成了

測試我們的API

我們現在準備測試我們構建的API。我們從命令行啟動服務器。

python manage.py runserver

我們現在可以從命令行訪問我們的API,使用像curl...

bash: curl -H 'Accept: application/json; indent=4' -u admin:password123 http://127.0.0.1:8000/users/ { "count": 2, "next": null, "previous": null, "results": [ { "email": "admin@example.com", "groups": [], "url": "http://127.0.0.1:8000/users/1/", "username": "admin" }, { "email": "tom@example.com", "groups": [ ], "url": "http://127.0.0.1:8000/users/2/", "username": "tom" } ] }

或使用httpie,命令行工具...

bash: http -a admin:password123 http://127.0.0.1:8000/users/ HTTP/1.1 200 OK ... { "count": 2, "next": null, "previous": null, "results": [ { "email": "admin@example.com", "groups": [], "url": "http://localhost:8000/users/1/", "username": "paul" }, { "email": "tom@example.com", "groups": [ ], "url": "http://127.0.0.1:8000/users/2/", "username": "tom" } ] }

或直接通過瀏覽器,轉到URL?http://127.0.0.1:8000/users/...

如果您正在使用瀏覽器,請確保使用右上角的控件進行登錄。

? ?

?

轉載于:https://www.cnblogs.com/chenyang13677/p/7554411.html

總結

以上是生活随笔為你收集整理的Django REST框架 -1的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。