Django先後端分離之REST framework初試

以前剛學django時硬生生使用了靜態資源和接口分離的方法,實際使用中確定會很是不方便。因而發現了用於先後端分離,編寫後臺API的REST framework框架。這裏作初步嘗試
官方文檔看起來很是入門
本次實踐主要是根據官方文檔步驟進行初步實踐,其中加入一些本身學習時理解的註釋,不能保證翻譯正確,全部的參考連接都放在文末吧。
可是!學習過程當中發現兩處引用模塊官網有誤!代碼中會標註出來
官方文檔地址先放:
http://www.django-rest-framew...html

1、項目安裝

首先是安裝django和djangorestframeworkpython

pip install django
pip install djangorestframework

多數人都應該安裝好了吧數據庫

根據按官網demo安裝應用django

django-admin.py startproject tutorial
django-admin.py startapp quickstart

而後是數據庫遷移後端

python manage.py migrate

接着建立管理員頁面和用戶api

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

2、Serializer(序列化器)配置

定義一些配置,建立一個tutorial/quickstart/serializers.py模塊,編寫以下代碼瀏覽器

from django.contrib.auth.models import User, Group #引入django身份驗證機制User模塊和Group模塊
from rest_framework import serializers #引入rest framework的serializers

class UserSerializer(serializers.HyperlinkedModelSerializer): #繼承超連接模型解析器
    class Meta:
        model = User #使用User model
        fields = ('url', 'username', 'email', 'groups') #設置字段

class GroupSerializer(serializers.HyperlinkedModelSerializer):
    class Meta:
        model = Group  #使用Group model
        fields = ('url', 'name')

3、視圖配置

tutorial/quickstart/views.py編寫以下代碼(render均可以註釋掉了???)
這裏有一處官網引入模塊錯誤服務器

#from django.shortcuts import render
from django.contrib.auth.models import User, Group #引入model
from rest_framework import viewsets #引入viewsets,相似controllers
# from tutorial.quickstart.serializers import UserSerializer, GroupSerializer 官網模塊引入寫法,有誤
from quickstart.serializers import UserSerializer, GroupSerializer #引入剛剛定義的序列化器

# Create your views here.
class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all().order_by('-date_joined') #集合
    serializer_class = UserSerializer  #序列化

class GroupViewSet(viewsets.ModelViewSet):
    queryset = Group.objects.all()
    serializer_class = GroupSerializer

4、URL

tutorial/urls.py編寫URL
這裏有一處官網引入模塊錯誤app

from django.contrib import admin
from django.urls import path, re_path
#rest
from django.conf.urls import url, include
from rest_framework import routers
# from tutorial.quickstart import views  官網模塊引入寫法,有誤
from quickstart import views
router = routers.DefaultRouter() #路由
router.register(r'users', views.UserViewSet) #路由地址與接口配置
router.register(r'groups', views.GroupViewSet)

#注:path是新寫法,url爲老寫法,若要使用正則,則使用re_path
urlpatterns = [
    path('admin/', admin.site.urls),
    #rest
    re_path(r'^', include(router.urls)), #包含進路由配置的url
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')) #瀏覽器測試接口配置
]

5、設置

tutorial/settings.py下安裝框架

INSTALLED_APPS = (
    ...
    'rest_framework',
)

6、打開瀏覽器測試

python manage.py runserver

啓動服務器後瀏覽器輸入http://127.0.0.1:8000可進入接口測試頁面

記得在右上角處點擊登陸

7、參考連接

django用戶驗證機制:https://docs.djangoproject.co...
什麼是Serializer:http://www.django-rest-framew...
什麼是Serializer relations:http://www.django-rest-framew...
什麼是viewsets:http://www.django-rest-framew...
url和re_path中r是什麼:https://www.cnblogs.com/xuchu...
url與path區別:https://blog.csdn.net/endless...

相關文章
相關標籤/搜索