日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

django restful 请求_利用 Django REST framework 构建 RESTful Web API

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 django restful 请求_利用 Django REST framework 构建 RESTful Web API 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用 Django REST framework 構建 RESTful Web API

終于到了動手操作的環節啦,這一節,我們以師生管理系統為例,帶領大家搭建一套 framework Web API。“工欲善其事,必先利其器”,我們選用當下最為流行的 Django REST framework 為工具,快速實現這套API。

安裝 Django REST framework 需要以下依賴:

Python (3.5, 3.6, 3.7, 3.8)

Django (1.11, 2.0, 2.1, 2.2, 3.0)

Django REST framework是以 Django 擴展應用的方式提供的,所以我們可以直接利用已有的Django環境而無需重新創建。(若沒有Django環境,需要先創建環境安裝Django)

1. 安裝 Django REST framework

django 安裝過程:

django-rest-framework 安裝過程:

2.創建工程和應用

工程和應用創建完成后,目錄結構如下圖所示:

3. 注冊rest_framework應用

Django REST framework 可視作是 Django 的一個應用,在使用之前,需要在 INSTALLED_APPS 中注冊。

在完成以上操作后,就可以使用 Django REST framework 開發 Restful Web API 了。接下來,我們將以學生管理系統為例,帶大家一覽 Django REST framework 如何高效開發 REST API。

4.創建、遷移模型,并添加數據

構建數據模型,是搭建 Restful Web API 的基礎。構建模型,相當于構建數據庫結構,且無需繁瑣的 SQL 語言,另一個好處是,即使切換不同的數據庫引擎(mysql 、SQL Server、Oracle等),也無需重新構建。下方我們構建一個學生信息表,包含學生姓名、學生年齡和學號。

終端中運行命令以遷移模型

向數據庫中添加演示數據,這里我們可以使用 PyCharm 自帶的 Database 工具來完成。由于我們使用的是sqlite3 作為數據庫,添加數據時,可雙擊左側文件目錄中的 db.sqlite3 文件,而后在右側 Database 工具中雙擊要操作的數據表(AppDemo_studentsmodel)。

在打開的數據表中,填入要填充的數據即可:

5. 創建序列化器

通常,API 包含兩個方向的操作,其一是客戶端向服務器請求數據,其二是客戶端向服務器提交數據。當客戶端向服務器請求數據時,服務器在數據庫檢索相應數據,經過序列化器序列化,再由視圖交給客戶端;客戶端向服務器提交數據時,數據經由視圖層進行處理,而后序列化器反序列化,最后存入數據庫。

在 Restful Web API 中,序列化器相當于客戶端和數據庫之間數據對接的橋梁,它可將服務器中的數據,序列化為客戶端可解析的數據形式,相反,也可將客戶端提供的數據,反序列化為符合數據庫要求的數據形式。接下來,我們在 AppDemo 應用中新建 serializers.py 用于保存該應用的序列化器。

創建一個 StudentsSerializer 用于序列化與反序列化學生信息:

model :指明該序列化器處理的數據字段從模型類 StudentsModel 參考生成;

fields :指明該序列化器包含模型類中的哪些字段,’all’指明包含所有字段。

5. 編寫視圖

在 Restful Web API 中,視圖扮演的角色是數據處理器。例如,客戶端需要獲取一個學生一次期末考試后各科成績的平均值,而數據庫中僅存了各科的成績,這時,就需要視圖對數據處理,根據各科成績求出平均值后返回給客戶端。由于本案例無需對數據進行處理,視圖實現較為簡單。在 booktest 應用的 views.py 中創建視圖 BookInfoViewSet,這是一個視圖集合。

queryset 指明該視圖集在查詢數據時使用的查詢集;

serializer_class 指明該視圖在進行序列化或反序列化時使用的序列化器。

6. 定義路由

路由是用來定義 RESTful Web API 不同接口所對應的不同路徑地址。在本案例中,我們是要獲得學生的信息,根據第 3 節中介紹的設計規范,地址應設計為:http://www.demo.com/api/students 。在 ProjectDemo 的 urls.py 中定義路由信息。

8. 運行測試

終端中運行當前程序(與運行 Django 一樣):

此時,我們的 RESTful Web API 已構建完畢。由于我們是在本地測試,所以 API 域名部分采用本機地址。在瀏覽器地址欄輸入 http://127.0.0.1:8000/api,即可看到當前項目中所有接口連接。

在頁面底部的表單中,我們可以輸入學生信息,點擊 POST 按鈕,即可實現向學生列表中添加新的學生信息:

點擊 POST 按鈕后,返回如下信息:

此時再點擊 GET 按鈕,我們發現上一步中添加的學生(小白)已經顯示在所有學生信息中。

在瀏覽器中輸入網址 127.0.0.1:8000/api/students/2/,可以訪問獲取單個學生信息的接口(id 為 2 的學生),如下圖所示:

如果需要修改該學生的信息,可在頁面底部表單中填寫需要修改的信息,即可訪問修改單個學生的接口。我們將小紅年齡修改為 20:

點擊 PUT,返回如下頁面信息,此時小紅的年齡信息已經修改完畢:

點擊 DELETE 按鈕,可以訪問刪除學生的接口:

點 DELETE 后返回,如下頁面,此時 id 為 2 的學生小紅已被刪除:

9.小結

本節主要講解了 Django 和 Django REST framework 安裝方法,并利用 Django REST framework 實現了一個簡單的學生管理系統 RESTful Web API。至此,一個符合 RESTful 規范的簡單 API 就創建完成了。除此之外,Django REST framework 還為我們提供了許多高級功能,我們將在后續小節為大家詳細介紹。

總結

以上是生活随笔為你收集整理的django restful 请求_利用 Django REST framework 构建 RESTful Web API的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。