'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework', # 添加 DRF
]

2、創建一個簡單的 API

接下來,我們將通過 DRF 創建一個簡單的 API。我們從定義一個模型開始,然后通過序列化器將數據轉換成 JSON 格式,最后提供接口讓用戶訪問。

(1)定義模型

在 Django 中,模型是我們用于定義數據結構的地方。比如,我們創建一個 Book 模型,包含書籍的標題、作者和出版日期:

from django.db import models

class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
published_date = models.DateField()

def __str__(self):
return self.title

代碼解析

運行以下命令來創建數據庫表:

python manage.py makemigrations
python manage.py migrate

2)創建序列化器

序列化器(Serializer)是將數據轉換為 JSON 格式的工具。DRF 提供了一個強大的 ModelSerializer,它可以自動地將 Django 模型轉為 JSON 格式。

在 serializers.py 中創建一個序列化器:

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
class Meta:
model = Book
fields = ['id', 'title', 'author', 'published_date']

代碼解析

(3)創建視圖

DRF 提供了多種視圖類,我們可以用它們來處理 HTTP 請求。在這里,我們將使用 ListCreateAPIView,它支持獲取所有書籍數據以及創建新書籍。

在 views.py 中,添加如下代碼:

from rest_framework import generics
from .models import Book
from .serializers import BookSerializer

class BookListCreateView(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer

代碼解析

(4)配置 URL 路由

為了讓 API 能被訪問,我們需要配置 URL 路由。在 urls.py 中添加以下內容:

from django.urls import path
from .views import BookListCreateView

urlpatterns = [
path('api/books/', BookListCreateView.as_view(), name='book-list-create'),
]

代碼解析

(5)如何獲取數據庫表結構工具

獲取數據庫表結構工具的步驟如下:

  1. screw(螺絲釘)
  1. MySQL Workbench
  1. dbForge Studio for MySQL
  1. 編程語言的數據庫接口
  1. 數據庫管理工具

(6)獲取數據庫表結構工具有哪些

獲取數據庫表結構工具有很多,這里列舉一些常用的

  1. MySQL Workbench
  1. phpMyAdmin
  1. Navicat
  1. DBeaver
  1. Toad
  1. dbForge Studio

3、測試 API

現在我們已經完成了 API 的基本設置。你可以通過運行開發服務器來測試 API:

python manage.py runserver

打開瀏覽器,訪問 http://127.0.0.1:8000/api/books/,你應該能看到一個 JSON 格式的書籍列表。如果你使用 POST 請求并傳遞數據,新的書籍將被創建。

小貼士:你可以使用 Postman 或 Insomnia 等工具來測試你的 API。通過這些工具,你可以方便地發送 GET、POST、PUT 和 DELETE 請求,查看 API 返回的結果。

4、添加權限控制

在實際開發中,我們通常希望對 API 進行權限控制,確保只有授權用戶才能訪問某些功能。DRF 提供了權限系統來簡化這一過程。

例如,只有認證用戶才能訪問書籍數據:

from rest_framework.permissions import IsAuthenticated

class BookListCreateView(generics.ListCreateAPIView):
queryset = Book.objects.all()
serializer_class = BookSerializer
permission_classes = [IsAuthenticated]

代碼解析

5、處理分頁

API 返回的數據量很大時,我們可以為它添加分頁功能,這樣用戶就能分批獲取數據,而不會一次性加載所有數據。

在 settings.py 中,配置分頁參數:

REST_FRAMEWORK = {
'PAGE_SIZE': 5,
}

代碼解析

6、錯誤處理

DRF 提供了豐富的錯誤處理機制,默認情況下,當出現錯誤時,DRF 會自動返回帶有錯誤信息的響應。比如,當發送無效的數據時,DRF 會返回 400 錯誤,并顯示詳細的錯誤消息。

你也可以自定義錯誤消息,或者在視圖中處理特定的異常。

二、如何用python命令行格式化json文件

在Python中,你可以使用內置的json模塊來格式化JSON文件。以下是一個簡單的命令行腳本,它讀取一個JSON文件,然后將其格式化并打印到標準輸出。這個腳本就是用于“python命令行格式化json文件”的實用工具。如果你想要將格式化后的JSON寫回文件,也可以在腳本中添加相應的代碼。下面我們來學習下如何用python命令行格式化json文件:

首先,確保你的JSON文件是有效的。以下是一個名為format_json.py的Python腳本示例,它專門用于“python命令行格式化json文件”:

import json
import sys

def format_json(input_file_path, output_file_path=None):
try:
with open(input_file_path, 'r') as file:
data = json.load(file)

# 格式化JSON數據
formatted_json = json.dumps(data, indent=4, ensure_ascii=False)

if output_file_path:
# 將格式化后的JSON寫入文件
with open(output_file_path, 'w') as file:
file.write(formatted_json)
else:
# 打印格式化后的JSON到標準輸出
print(formatted_json)

except FileNotFoundError:
print(f"Error: The file {input_file_path} does not exist.")
except json.JSONDecodeError:
print("Error: The file contains invalid JSON.")
except Exception as e:
print(f"An unexpected error occurred: {e}")

if __name__ == "__main__":
if len(sys.argv) < 2:
print("Usage: python format_json.py <input_file_path> [output_file_path]")
else:
input_file_path = sys.argv[1]
output_file_path = sys.argv[2] if len(sys.argv) > 2 else None
format_json(input_file_path, output_file_path)

使用這個腳本,你可以通過命令行傳遞輸入文件的路徑,如果需要,還可以傳遞輸出文件的路徑。例如,如果你想要“python命令行格式化json文件”,可以這樣做:

python format_json.py input.json

這將格式化input.json文件并打印到標準輸出。如果你想要將格式化后的JSON寫入新文件,可以這樣做:

python format_json.py input.json output.json

這將創建一個名為output.json的文件,其中包含格式化后的JSON數據。這個操作也是“python命令行格式化json文件”的一個應用場景。

請確保在運行腳本之前,你的Python環境已經設置好,并且你有權限讀取和寫入指定的文件。這個腳本是“python命令行格式化json文件”的一個實際應用,可以幫助你快速格式化JSON數據,無論是打印到控制臺還是寫入到新文件。

三、總結

今天,我們一起學習了?Django REST Framework,從如何安裝、定義模型,到如何使用 DRF 創建 API,最后我們還學會了如何進行權限控制和分頁處理以及如何用python命令行格式化json文件、如何獲取數據庫表結構工具。通過 DRF,你可以輕松地為你的 Django 項目提供 RESTful API,幫助前端和移動端更方便地訪問后端數據。

練習題

  1. 在現有 API 的基礎上,添加一個功能,允許用戶更新書籍信息。
  2. 添加一個功能,允許用戶根據書名或作者搜索書籍。
  3. 為 API 添加用戶認證和授權,確保只有管理員才能刪除書籍。

今天的 Python 學習之旅就到這里啦!記得動手敲代碼,實踐是最好的學習方式。祝大家學習愉快,Python 學習節節高!

文章轉自微信公眾號@打個新

上一篇:

Django模型查詢API大集合, 如何對數據庫增刪改查看這一篇就夠了

下一篇:

Graphene-Django 深度集成:構建高性能、類型安全的 GraphQL API
#你可能也喜歡這些API文章!

我們有何不同?

API服務商零注冊

多API并行試用

數據驅動選型,提升決策效率

查看全部API→
??

熱門場景實測,選對API

#AI文本生成大模型API

對比大模型API的內容創意新穎性、情感共鳴力、商業轉化潛力

25個渠道
一鍵對比試用API 限時免費

#AI深度推理大模型API

對比大模型API的邏輯推理準確性、分析深度、可視化建議合理性

10個渠道
一鍵對比試用API 限時免費