国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Python django中如何使用restful框架

瀏覽:132日期:2022-06-15 18:37:19
restful框架的使用

在使用django進行前后臺分離開發時通常會搭配django-rest-framework框架創建RESTful風格的接口API。框架介紹及版本要求可參考官方地址:https://www.django-rest-framework.org

Python django中如何使用restful框架

本文以創建man包含name、sex字段的API為實例學習django-rest-framework框架的使用。

主要包含下面5個步驟:

1.創建Django項目

2.創建ORM模型

3.加載Django REST Framework

4.序列化模型

5.創建加載數據的view和url

1.創建Django項目

創建django_rest

django-admin startproject django_rest

進入django_rest,創建虛擬環境env

virtualenv env

激活虛擬環境,并安裝django

source ./env/bin/activate

安裝 django

pip install django

創建rest_app

python manage.py startapp rest_app

注冊app,將app添加到INSTALLED_APPS

#setting.pyINSTALLED_APPS = [ ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, ’rest_app’]

創建后臺admin賬戶用于管理

$ python manage.py createsuperuserUsername (leave blank to use ’root’):admin Email address: Password: Password (again): Superuser created successfully.2.創建ORM模型

數據庫我們使用默認sqlite3 即可,如需要變更可在setting.py中databases配置。

修改我們/django_rest/models.py添加我們man的模型

#models.pyfrom django.db import models# Create your models here.class Man(models.Model): name = models.CharField(max_length=64) sex = models.CharField(max_length=64) def __str__(self):return self.name

做數據庫遷移

python manage.py makemigrations python manage.py migrate

Python django中如何使用restful框架

將Man這個model注冊到我們的后臺,以便可以通過django的后臺做增刪查改,編寫admin.py如下

#admin.pyfrom django.contrib import adminfrom .models import Man# Register your models here.admin.site.register(Man) # 注冊Man到后臺

啟動django服務

python manage.py runserver

訪問 http://127.0.0.1:8000/admin/可以看到登錄界面,輸入密碼登錄

Python django中如何使用restful框架

可以看到我們的rest_app下的模型man對象mans

Python django中如何使用restful框架

我們添加一個那個男人lgd.ame

Python django中如何使用restful框架

3. 加載Django REST Framework

安裝工具包

pip install djangorestframework

注冊rest_framework

#setting.pyINSTALLED_APPS = [ ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, ’rest_app’ ’rest_framework’ #注冊]4.序列化模型

序列化器會把我們的模型數據轉化(序列化)為json格式,這樣就能夠被請求了。同樣當有josn數據提交過來的時候,序列化器會將json數據轉換為模型供咋們使用。

我們在rest_app下創建文件serializer.py

我們要做三件事:

1.導入Man模型

2.導入序REST Framework序列化器

3.創建新的類將模型和序列化器鏈接起來

from rest_framework import serializersfrom .models import Manclass Manserializer(serializers.HyperlinkedModelSerializer): class Meta:model = Manfields = (’name’,’sex’)5.創建加載數據的view和url

我們需要把序列化后的數據返回給瀏覽器,所以要做一下步驟:

1.通過不通的Man查詢數據庫

2.將查詢后的數據傳遞給序列化器,通過序列化器轉化為json

我們在rest_app/views.py編寫我們的視圖,ModelViewSet由rest_framework提供,包含了get、post方法

# views.pyfrom rest_framework import viewsetsfrom .serializers import ManSerializerfrom .models import Manclass ManViewSet(viewsets.ModelViewSet): queryset = Man.objects.all().order_by(’name’) #查詢結果給queryset serializer_class = ManSerializer #對結果進序列化

在django_rest目錄下urls.py添加api路由

from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path(’admin/’, admin.site.urls), path(’’, include(’rest_app.urls’)), ]

在rest_app目錄下創建urls.py添加視圖路由,通過rest_framework中router確保我們的請求到正確的動態資源。

from django.urls import include, pathfrom rest_framework import routersfrom . import viewsrouter = routers.DefaultRouter()router.register(r’man’, views.ManViewSet) #路由到ManViewSet視圖# Wire up our API using automatic URL routing.# Additionally, we include login URLs for the browsable API.urlpatterns = [ path(’’, include(router.urls)), #使用router路由 path(’api-auth/’, include(’rest_framework.urls’, namespace=’rest_framework’))]

最后我們來啟動服務,訪問http://127.0.0.1:8000/ 可以在瀏覽器查看到我們api信息

python manage.py runserver

Python django中如何使用restful框架

訪問http://127.0.0.1:8000/man/ 來查看man資源

Python django中如何使用restful框架

通過id來訪問api資源http://127.0.0.1:8000/man/1/

Python django中如何使用restful框架

這樣我們一個基礎restful風格的API創建完成了。感覺關鍵點還是理解ModelViewSet和內置router不讀源碼很難知其所以然。

到此這篇關于Python django中如何使用restful框架的文章就介紹到這了,更多相關restful框架的使用內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 在线a视频网站 | 国产夜色| 一区二区视频在线 | 亚洲欧美在线观看播放 | 91人成亚洲高清在线观看 | 寡妇一级a毛片免费播放 | 日韩精品中文字幕在线 | 日本www高清免费视频观看 | 久久91| 一区二区三区成人 | 欧美视频一区二区在线观看 | 亚洲精品综合久久中文字幕 | 最新国产一区二区精品久久 | 日韩在线高清视频 | 狠狠色丁香婷婷综合久久片 | 午夜毛片视频高清不卡免费 | 美女扒开双腿让男人桶 | 真实国产精品视频国产网 | 欧美在线一级精品 | 精品少妇一区二区三区视频 | 久久成人综合网 | 国产成人精品实拍在线 | 日本一区二区不卡视频 | 成年大片免费视频播放手机不卡 | 欧美日韩一区在线观看 | 欧美另类在线视频 | 成人久久18免费网站游戏 | 伊人色综合久久成人 | 亚洲一区二区精品视频 | 99国内视频 | 加勒比日本道 | 97免费视频免费视频 | 91国内精品久久久久影院优播 | 精品亚洲大全 | 亚洲欧美激情在线 | 杨晨晨福利视频 | 特级毛片 | 亚洲欧美一区二区三区在线观看 | 国产午夜爽爽窝窝在线观看 | 97在线视频网站 | 九草视频|