DRF工程搭建

環境安裝與配置python

DRF須要如下依賴:django

  • Python (2.7, 3.2, 3.3, 3.4, 3.5, 3.6)
  • Django (1.10, 1.11, 2.0)

DRF是以Django擴展應用的方式提供的,因此咱們能夠直接利用已有的Django環境而無需重新建立。(若沒有Django環境,須要先建立環境安裝Django)瀏覽器

 

1. 安裝DRF

pip install djangorestframework

image

 

2. 添加rest_framework應用

咱們利用在Django框架學習中建立的demo工程,在settings.pyINSTALLED_APPS中添加'rest_framework'。框架

image

 

INSTALLED_APPS = [
    ...
    'rest_framework',
]

DRF的魅力學習

1. 建立序列化器

在booktest應用中新建.py用於保存該應用的序列化器。測試

建立一個BookInfoSerializer用於序列化與反序列化。url

class BookInfoSerializer(serializers.ModelSerializer):
    """圖書數據序列化器"""
    class Meta:
        model = BookInfo
        fields = '__all__'
  • model 指明該序列化器處理的數據字段從模型類BookInfo參考生成
  • fields 指明該序列化器包含模型類中的哪些字段,'__all__'指明包含全部字段

 

2. 編寫視圖

在booktest應用的views.py中建立視圖BookInfoViewSet,這是一個視圖集合。spa

from rest_framework.viewsets import ModelViewSet
from .serializers import BookInfoSerializer
from .models import BookInfo

class BookInfoViewSet(ModelViewSet):
    queryset = BookInfo.objects.all()
    serializer_class = BookInfoSerializer
  • queryset 指明該視圖集在查詢數據時使用的查詢集
  • serializer_class 指明該視圖在進行序列化或反序列化時使用的序列化器

 

3. 定義路由

在booktest應用的urls.py中定義路由信息。3d

from . import views
from rest_framework.routers import DefaultRouter

urlpatterns = [
    ...
]

router = DefaultRouter()  # 能夠處理視圖的路由器
router.register(r'books', views.BookInfoViewSet)  # 向路由器中註冊視圖集

urlpatterns += router.urls  # 將路由器中的因此路由信息追到到django的路由列表中

 

4. 運行測試

python manage.py runserver

在瀏覽器中輸入網址127.0.0.1:8000,能夠看到DRF提供的API Web瀏覽頁面:rest

圖書接口Web瀏覽頁面

1)點擊連接127.0.0.1:8000/books/ 能夠訪問獲取全部數據的接口,呈現以下頁面:

查詢全部圖書信息1

查詢全部圖書頁面2

2)在頁面底下表單部分填寫圖書信息,能夠訪問添加新圖書的接口,保存新書:

保存新圖書信息

點擊POST後,返回以下頁面信息:

保存圖書返回信息

3)在瀏覽器中輸入網址127.0.0.1:8000/books/1/,能夠訪問獲取單一圖書信息的接口(id爲1的圖書),呈現以下頁面:

獲取單一圖書信息

4)在頁面底部表單中填寫圖書信息,能夠訪問修改圖書的接口

修改圖書信息

點擊PUT,返回以下頁面信息:

修改圖書返回信息

5)點擊DELETE按鈕,能夠訪問刪除圖書的接口

刪除圖書

返回,以下頁面:

刪除返回信息

至此,是否是發現Django REST framework很好用!

相關文章
相關標籤/搜索