溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

帶你進入rest framework

發(fā)布時間:2020-07-28 19:37:22 來源:網(wǎng)絡(luò) 閱讀:501 作者:MonCheri_Flower 欄目:開發(fā)技術(shù)

這邊聲明一下,以下是參考官方文檔來的。


新建項目

新建名為dimples的django項目

在其中建立一個名為astart的APP:

新建目錄
# 新建目錄mkdir dimplescd dimples
新建虛擬環(huán)境
virtualenv envenv\Scripts\activate
在虛擬環(huán)境中安裝依賴
pip install django
pip install djangorestframework
新建項目
django-admin.py startproject dimples .  
cd dimples
django-admin.py startapp astart
cd ..
創(chuàng)建表
python manage.py migrate
創(chuàng)建管理員
python manage.py createsuperuser

序列化

首先創(chuàng)建一個文件dimples/astart/serializers.py來編寫序列化相關(guān)的代碼:

from django.contrib.auth.models import User, Groupfrom rest_framework import serializersclass UserSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'groups')class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group
        fields = ('url', 'name')

HyperlinkedModelSerializer: 建立超鏈接關(guān)系。

dimples/astart/views.py

編寫視圖文件

from django.contrib.auth.models import User, Groupfrom rest_framework import viewsetsfrom dimples.astart.serializers import UserSerializer, GroupSerializerclass UserViewSet(viewsets.ModelViewSet):
    """
    查看、編輯用戶的界面
    """
    queryset = User.objects.all().order_by('-date_joined')
    serializer_class = UserSerializerclass GroupViewSet(viewsets.ModelViewSet):
    """
    查看、編輯組的界面
    """
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

ViewSets:封裝許多常見的操作,減少重復(fù)代碼。 保持代碼的簡潔以及邏輯的清晰。

dimples/urls.py
from django.conf.urls import url, includefrom rest_framework import routersfrom dimples.astart import views

router = routers.DefaultRouter()
router.register(r'users', views.UserViewSet)
router.register(r'groups', views.GroupViewSet)# 使用URL路由來管理我們的API# 另外添加登錄相關(guān)的URLurlpatterns = [
    url(r'^', include(router.urls)),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]

使用了ViewSets可以通過使用Router類來自動生成URL配置信息。

Settings

啟用分頁功能 以及 只有管理員能訪問

INSTALLED_APPS = (
    ...    'rest_framework',
)

REST_FRAMEWORK = {    'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAdminUser',),    'PAGE_SIZE': 10}

測試

Terminal中輸入

python ./manage.py runserver

使用命令行工具訪問API

http -a dimples:111111 http://127.0.0.1:8000/users/
(venv) C:\Users\Administrator\PycharmProjects\dimples>http -a dimples:111111 http://127.0.0.1:8000/user/HTTP/1.0 200 OKAllow: GET, HEAD, OPTIONS
Content-Length: 91Content-Type: application/jsonDate: Wed, 20 Sep 2017 11:31:17 GMTServer: WSGIServer/0.1 Python/2.7.13Vary: Accept, Cookie
X-Frame-Options: SAMEORIGIN

{    "groups": "http://127.0.0.1:8000/user/groups/",    "users": "http://127.0.0.1:8000/user/users/"}

確保登錄狀態(tài)下打開瀏覽器 127.0.0.1:8000/users/



向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI