Django rest framework基本介紹與代碼示例
本文研究的主要是Django rest framework的相關(guān)內(nèi)容,分享了example,具體如下。
Django REST框架是構(gòu)建Web API的強(qiáng)大而靈活的工具包。
您可能希望使用REST框架的一些原因:
- Web瀏覽的API是您的開發(fā)人員的巨大的可用性勝利。
- 驗(yàn)證策略包括OAuth1a和OAuth2的包。
- 支持ORM和非ORM數(shù)據(jù)源的序列化。
- 如果不需要功能更強(qiáng)大的功能,可以自定義一切 - 只需使用基于功能的常規(guī)視圖。
- 廣泛的文檔和極好的社區(qū)支持。
- 由Mozilla,Red Hat,Heroku和Eventbrite等國際知名公司使用和信賴。
Requirements
REST框架需要以下內(nèi)容:
- Python(2.7,3.2,3.3,3.4,3.5)
- Django(1.8,1.9,1.10)
以下軟件包是可選的:
- coreapi(1.32.0+) - 支持模式生成。
- Markdown(2.1.0+) - 可瀏覽API的Markdown支持。
- django-filter(1.0.1+) - 過濾支持。
- django-crispy-forms - 改進(jìn)的HTML顯示過濾。
- django-guardian(1.1.1+) - 對象級權(quán)限支持。
Installation
Install using pip, including any optional packages you want…
pip install djangorestframework pip install markdown # Markdown support for the browsable API. pip install django-filter # Filtering support
Add'rest_framework'to your INSTALLED_APPS setting.
INSTALLED_APPS = ( ... 'rest_framework', )
如果您打算使用可瀏覽的API,您可能還需要添加REST框架的登錄和注銷視圖。 將以下內(nèi)容添加到您的根urls.py文件中。
urlpatterns = [
...
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
]
請注意,URL路徑可以是任何您想要的,但您必須在rest_framework的命名空間中包含“rest_framework.urls”。 您可以在Django 1.9+中省略命名空間,REST框架將為您設(shè)置。
Example
我們來看一下使用REST框架構(gòu)建一個(gè)簡單的模型支持的API的一個(gè)簡單例子。
我們將創(chuàng)建一個(gè)讀寫API來訪問我們項(xiàng)目用戶的信息。
REST框架API的任何全局設(shè)置都保存在名為REST_FRAMEWORK的單個(gè)配置字典中。 首先將以下內(nèi)容添加到settings.py模塊中:
REST_FRAMEWORK = {
# Use Django's standard `django.contrib.auth` permissions,
# or allow read-only access for unauthenticated users.
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
]
}
不要忘了確保你還在你的INSTALLED_APPS中添加了rest_framework。
我們已經(jīng)準(zhǔn)備好創(chuàng)建我們的API了。 這是我們項(xiàng)目的根urls.py模塊:
from django.conf.urls import url, include
from django.contrib.auth.models import User
from rest_framework import routers, serializers, viewsets
#Serializers定義API表示。
class UserSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('url', 'username', 'email', 'is_staff')
#ViewSets定義視圖行為。
class UserViewSet(viewsets.ModelViewSet):
queryset = User.objects.all()
serializer_class = UserSerializer
#路由器提供了一種自動確定URL conf的簡單方法。
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
#使用自動網(wǎng)址路由連接我們的API。
# 另外,我們還包括可瀏覽的API的登錄URL。
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework'))
您現(xiàn)在可以在http://127.0.0.1:8000/瀏覽器中打開該API,并查看新的“用戶”API。 如果您使用右上角的登錄控件,您還可以從系統(tǒng)添加,創(chuàng)建和刪除用戶。
總結(jié)
以上就是本文關(guān)于Django rest framework基本介紹的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!
- django rest framework之請求與響應(yīng)(詳解)
- 淺談Django REST Framework限速
- 詳解Django rest_framework實(shí)現(xiàn)RESTful API
- Django rest framework實(shí)現(xiàn)分頁的示例
- django rest framework 數(shù)據(jù)的查找、過濾、排序的示例
- Python實(shí)現(xiàn)手寫一個(gè)類似django的web框架示例
- Django基礎(chǔ)知識與基本應(yīng)用入門教程
- Python+Django在windows下的開發(fā)環(huán)境配置圖解
- python Django模板的使用方法(圖文)
- Django rest framework工具包簡單用法示例
相關(guān)文章
python DataFrame轉(zhuǎn)dict字典過程詳解
這篇文章主要介紹了python DataFrame轉(zhuǎn)dict字典過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
關(guān)于對python中進(jìn)程的幾個(gè)概念理解
進(jìn)程由程序,數(shù)據(jù)和進(jìn)程控制塊組成,是正在執(zhí)行的程,程序的一次執(zhí)行過程,是資源調(diào)度的基本單位,下面這篇文章主要給大家介紹了關(guān)于對python中進(jìn)程的幾個(gè)概念理解,需要的朋友可以參考下2021-10-10
python文件夾分區(qū)的實(shí)現(xiàn)方法實(shí)例
這篇文章主要給大家介紹了關(guān)于python文件夾分區(qū)的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04
flask SQLAlchemy連接數(shù)據(jù)庫及操作的實(shí)現(xiàn)
本文主要介紹了flask SQLAlchemy連接數(shù)據(jù)庫及操作的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
Python實(shí)現(xiàn)并行抓取整站40萬條房價(jià)數(shù)據(jù)(可更換抓取城市)
本文主要是以房價(jià)網(wǎng)房價(jià)信息爬蟲為例,對Python實(shí)現(xiàn)整站40萬條房價(jià)數(shù)據(jù)并行抓?。筛鼡Q抓取城市)的方法進(jìn)行分析介紹。需要的朋友一起來看下吧2016-12-12
opencv-python的RGB與BGR互轉(zhuǎn)方式
這篇文章主要介紹了opencv-python的RGB與BGR互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對大家有所 幫助。一起跟隨小編過來看看吧2020-06-06
Python爬取動態(tài)網(wǎng)頁中圖片的完整實(shí)例
這篇文章主要給大家介紹了關(guān)于Python爬取動態(tài)網(wǎng)頁中圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03

