Django Rest framework基礎使用之 serializer

rest-framework文檔地址:http://www.django-rest-framework.org/
web

Django Rest framework是一個很是強大且靈活的工具包,用於構建web APIdjango

選擇rest framework的理由:api

  1)在線可視的API瀏覽器

  2)驗證策略涵蓋了OAuth1a和OAuth2函數

  3)同時支持ORM(對象關係映射)和非ORM數據源的序列化工具

  4)大量文檔及強大社區支持測試

一、安裝:pip install djangorestframeworkurl

  說明:若是安裝coreapi的時候,出現utf-8報錯,能夠將虛擬環境中的Lib---->site package--->pip--->compat---__init__.py中的第75行return s.decode("utf-8")改成"gbk",而後uninstall coreapi,再從新安裝。spa

二、將 "rest_framework"加入到INSTALLED_APPS 設置中rest

三、配置url

  from django.conf.urls import url, include

  url(r"^api-auth/", include("rest_framework.urls"))

  ------這個url是restframework登陸和登出的url,在使用瀏覽器API測試的時候是頗有用的,若是你定義的某個接口是須要登陸以後才能被調用的話。

  from rest_framework.documentation import include_docs_urls

  url(r"docs", include_docs_urls(title=""))

  ------配置DRF生成自動API文檔

 四、restframework的serializer.Serializer

  相似於Django的Form類,可用來序列化和反序列化實例對象

  

使用serializer序列化model實例:

  

咱們也能夠用serializer來序列化querysets,序列化querysets的時候,咱們須要在serializer參數中加上many=True的標誌

  

 

 五、ModelSerializer

  從上面的例子中能夠看出來,使用Serializer在定義序列化字段的時候,寫的很複雜,幾乎須要把咱們的mode所有複製一遍,爲了減小代碼量,ModelSerializer應運而生

  一樣是上面的例子,咱們用ModelSerializer來重構以下:

  

  那麼 ModelSerializer到底作了什麼?經過下面這幾行代碼,咱們能夠看出來它只是經過model將字段自動關聯起來了:

  from snippets.serializers import SnippetSerializer   serializer = SnippetSerializer()   print(repr(serializer))
  

  咱們再去看它的ModelSerializer源碼,能夠看到,它裏面已經爲咱們寫好了create和update函數

相關文章
相關標籤/搜索