django REST framework(DRF)教程

Django DRF API

  1. Django 基本使用
  2. Django DRF序列化器
  3. Django DRF視圖
  4. Django DRF常用功能

Django 基本使用

  • 前后端分離開發模式
  • 認識RestFulAPI
  • 回顧Django開發模式
  • Django REST Framework初探

前后端分離開發模式

在這里插入圖片描述
前后端分離前:前端頁面看到的效果都是由后端控制,即后端渲染HTML頁面,前端與后端的耦合度很高。

前后端分離前存在的問題:

  • PC、APP、Pad等多端流行
  • 前后端開發職責不清晰:各司其職,最大程度減少開發難度,方便協作
  • 開發效率問題,一般后端開發需先等前端頁面準備好,有時前端也一直配合后端,能力受限
  • 前后端代碼混在一起,日積月累,維護成本增加
  • 后端開發語言和模板耦合

在這里插入圖片描述
前后端分離后:后端僅返回前端所需要的數據,不再渲染HTML頁面,不再控制前端的效果,至于前端展示什么效果,都由前端自己決定。

認識RestFulAPI

什么是RestfulAPI:
? REST(Representational State Transfer,表征狀態轉移)是一種Web服務的軟件架構風格。
描述網絡中客戶端與服務端的一種交互方式,它本身不常用,常用的是如何設計RestfulAPI
(REST風格的網絡接口)
? RestfulAPI風格就是把所有的數據都當做資源,對表的操作就是對資源操作
? 資源就是指的URL,基于URL對資源操作,Web服務在URL上支持一系列請求方法,如下表所
示。

HTTP方法數據處理說明
POST新增新增一個資源
GET獲取獲取一個資源
PUT更新更新一個資源
DELETE刪除刪除一個資源

示例:
非REST的URL:http://ip/get_user?id=123
REST的URL:http://ip/user/123

回顧Django開發模式

在這里插入圖片描述
工作流程圖

通過一個用戶信息管理案例回顧Django開發模式!
目標:
? 熟悉Django項目創建流程
? 熟悉Django與HTML模板渲染
? 熟悉Ajax前后端數據交互
? 熟悉ORM數據庫操作

Django REST Framework初探

Django REST framework (簡稱:DRF)是一個強大而靈活的 Web API 工具。
遵循RESTFullAPI風格,功能完善,可快速開發API平臺。
官網文檔:https://www.django-rest-framework.org

Django REST framework 最新版使用要求:
? Python(3.6、3.7、3.8、3.9、3.10)
? Django(2.2、3.0、3.1、3.2、4.0)

安裝:

pip install djangorestframework

添加rest_framework到INSTALLED_APPS設置中:

INSTALLED_APPS = [
... 'rest_framework'
,
]

示例:實現用戶增刪改查的API
步驟:

  1. 創建APP
  2. 定義數據模型并同步數據庫
  3. 編寫序列化器文件
  4. 編寫視圖
  5. 添加API路由

1、創建APP

python manage

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/75505.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75505.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/75505.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Linux】Orin NX + Ubuntu22.04配置國內源

1、獲取源 清華源 arm 系統的源,可以在如下地址獲取到 https://mirror.tuna.tsinghua.edu.cn/help/ubuntu-ports/ 選擇HTTPS,否則可能報錯: 明文簽署文件不可用,結果為‘NOSPLIT’(您的網絡需要認證嗎?)查看Orin NX系統版本 選擇jammy的源 2、更新源 1)備份原配…

【含文檔+PPT+源碼】基于微信小程序的社交攝影約拍平臺的設計與實現

項目介紹 本課程演示的是一款基于微信小程序的社交攝影約拍平臺的設計與實現,主要針對計算機相關專業的正在做畢設的學生與需要項目實戰練習的 Java 學習者。 1.包含:項目源碼、項目文檔、數據庫腳本、軟件工具等所有資料 2.帶你從零開始部署運行本套系…

JDBC常用的接口

一、什么是JDBC JDBC是Java語言連接數據庫的接口規范。 二、JDBC的體系 1、Java官方提供一個操作數據庫的抽象接口 抽象接口有很多的接口和抽象類。 例如:Driver、Connection、Statement。 2、各個數據庫廠商提供各自的Java實現類 需要各自實現具體的細節。 例如&am…

容器適配器-stack棧

C標準庫不只是包含了順序容器,還包含一些為滿足特殊需求而設計的容器,它們提供簡單的接口。 這些容器可被歸類為容器適配器(container adapter),它們是改造別的標準順序容器,使之滿足特殊需求的新容器。 適配器:也稱配置器,把一…

[250403] HuggingFace 新增檢查模型與電腦兼容性的功能 | Firefox 發布137.0 支持標簽組

目錄 Hugging Face 讓尋找兼容的 AI 模型變得更容易Firefox 137 版本更新摘要 Hugging Face 讓尋找兼容的 AI 模型變得更容易 Hugging Face 是一個流行的在線平臺,用于訪問開源人工智能 (AI) 工具和模型。該平臺推出了一項有用的新功能,允許個人輕松檢查…

.NET 創建MCP使用大模型對話二:調用遠程MCP服務

在上一篇文章.NET 創建MCP使用大模型對話-CSDN博客中,我們簡述了如何使用mcp client使用StdIo模式調用本地mcp server。本次實例將會展示如何使用mcp client模式調用遠程mcp server。 一:創建mcp server 我們創建一個天氣服務。 新建WebApi項目&#x…

Redis 中 Set(例如標簽) 和 ZSet(例如排行榜) 的詳細對比,涵蓋定義、特性、命令、適用場景及總結表格

以下是 Redis 中 Set 和 ZSet 的詳細對比,涵蓋定義、特性、命令、適用場景及總結表格: 1. 核心定義 數據類型SetZSet(Sorted Set)定義無序的、唯一的字符串集合,元素不重復。有序的、唯一的字符串集合,每個…

解決Spring參數解析異常:Name for argument of type XXX not specified

前言 在開發 Spring Boot 應用時,我們常遇到類似 java.lang.IllegalArgumentException: Name for argument not specified 的報錯。這類問題通常與方法參數名稱的解析機制相關,尤其在使用 RequestParam、PathVariable 等注解時更為常見。 一、問題現象與…

剛剛,OpenAI開源PaperBench,重塑頂級AI Agent評測

今天凌晨1點,OpenAI開源了一個全新的AI Agent評測基準——PaperBench。 這個基準主要考核智能體的搜索、整合、執行等能力,需要對2024年國際機器學習大會上頂尖論文的復現,包括對論文內容的理解、代碼編寫以及實驗執行等方面的能力。 根據O…

Golang封裝Consul 服務發現庫

以下是一個經過生產驗證的 Consul 服務發現封裝庫,支持注冊/注銷、健康檢查、智能發現等核心功能,可直接集成到項目中: package consulimport ("context""fmt""log""math/rand""net""os""sync"&quo…

自適應信號處理任務(過濾,預測,重建,分類)

自適應濾波 # signals creation: u, v, d N = 5000 n = 10 u = np.sin(np.arange(0, N/10., N/50000

PyTorch深度學習框架 的基礎知識

目錄 1.pyTorch檢查是否安裝成功 2.PyTorch的張量tensor 基礎創建方式(三種) 2.2用列表創建tensor 2.2使用元組創建 tensor 2.3使用ndarray創建創建 tensor 2.4 快速創建tensor的常用方法 3.pyTorch中的張量tensor的常用屬性 4. tensor中的基礎數據…

MySQL學習集--DDL

DDL 數據庫操作 查詢所有數據庫 SHOW DATABASES;查詢當前數據庫 SELECT DATABASE();創建 CREATE DATABASE[IF NOT EXISTS]數據庫名[DEFAULT CHARSET 字符集][COLLATE 排序規則];刪除 DROR DATABASE[IF EXISTS]數據庫名;使用 USE 數據庫名;表操作 創建表格 CREATE TABL…

Vue 3 中按照某個字段將數組分成多個數組

方法一:使用 reduce 方法 const originalArray [{ id: 1, category: A, name: Item 1 },{ id: 2, category: B, name: Item 2 },{ id: 3, category: A, name: Item 3 },{ id: 4, category: C, name: Item 4 },{ id: 5, category: B, name: Item 5 }, ];const grou…

LeetCode刷題 -- 48. 旋轉圖像

題目 算法題解:順時針旋轉矩陣(90度) 1. 算法描述 給定一個 n n 的二維矩陣,請將矩陣順時針旋轉 90 度。 例如: 輸入: [[1,2,3],[4,5,6],[7,8,9] ]輸出: [[7,4,1],[8,5,2],[9,6,3] ]2. 思…

Vulkan進階系列1 - Vulkan應用程序結構(完整代碼)

一: 概述 在前面的20多篇文章中,我們了解了Vulkan的基礎知識,和相關API的使用,接下來我們要從零開始寫一套完整Vulkan應用程序,在這個過程中加深對Vulkan中的各種概念的理解。 Vulkan 應用程序一般遵循 初始化 -> 運行循環 -> 資源清理 的結構,本實例也基本遵循了…

VTK的兩種顯示刷新方式

在類中先聲明vtk的顯示對象 vtkRenderer out_render; vtkVertexGlyphFilter glyphFilter; vtkPolyDataMapper mapper; // 新建制圖器 vtkActor actor; // 新建角色 然后在init中先初始化一下: out_rend…

【CSS3】04-標準流 + 浮動 + flex布局

本文介紹浮動與flex布局。 目錄 1. 標準流 2. 浮動 2.1 基本使用 特點 脫標 2.2 清除浮動 2.2.1 額外標簽法 2.2.2 單偽元素法 2.2.3 雙偽元素法(推薦) 2.2.4 overflow(最簡單) 3. flex布局 3.1 組成 3.2 主軸與側軸對齊方式 3.2.1 主軸 3.2.2 側軸 3.3 修改主…

詳細介紹一下C++的按位運算

在C中,按位運算(Bitwise Operations) 是直接對二進制位(bit)進行操作的低級運算,常用于處理硬件、優化性能、加密算法或底層資源管理。以下是按位運算符的詳細說明、示例和典型應用場景: 1.按位…

Flask與 FastAPI 對比:哪個更適合你的 Web 開發?

在開發 Web 應用時,Python 中有許多流行的 Web 框架可以選擇,其中 Flask 和 FastAPI 是兩款廣受歡迎的框架。它們各有特色,適用于不同的應用場景。本文將從多個角度對比這兩個框架,幫助你更好地選擇適合的框架來構建你的 Web 應用…