django ninja
时间: 2025-06-18 13:51:10 AIGC 浏览: 46
### Django Ninja 框架使用指南与示例
Django Ninja 是一个结合了 Django 和 Ninja API 的框架,旨在简化 Web 开发中的 API 创建过程。以下是关于如何安装、配置和使用 Django Ninja 的详细指南。
#### 1. 安装 Django 和 Django Ninja
在开始之前,确保已安装 Django 和 Django Ninja。可以通过以下命令完成安装:
```bash
pip install django ninja
```
安装完成后,可以创建一个新的 Django 项目或在现有项目中集成 Django Ninja[^3]。
#### 2. 配置 Django 项目
假设已经有一个 Django 项目,接下来需要将 Django Ninja 添加到项目的配置中。编辑 `settings.py` 文件,确保包含以下内容:
```python
INSTALLED_APPS = [
# 其他应用
'ninja',
]
```
#### 3. 创建 API 实例
在 Django 项目中创建一个用于定义 API 的模块。例如,在 `myproject/myapp/` 目录下创建一个名为 `api.py` 的文件,并添加以下代码:
```python
from ninja import NinjaAPI
api = NinjaAPI()
@api.get("/hello")
def hello_world(request):
return {"message": "Hello, World!"}
```
#### 4. 配置 URL 路由
在 `myproject/urls.py` 文件中,将 Django Ninja 的 API 路由添加到 Django 的 URL 路由系统中:
```python
from django.urls import path
from myapp.api import api
urlpatterns = [
# 其他路由
path("api/", api.urls),
]
```
现在,启动 Django 开发服务器并访问 `http://127.0.0.1:8000/api/hello`,应该可以看到返回的 JSON 数据[^1]。
#### 5. 示例:处理验证错误
在实际开发中,可能会遇到需要优雅处理验证错误的情况。以下是一个简单的示例,展示如何定义模型并处理验证错误:
```python
from ninja import Schema, NinjaAPI
api = NinjaAPI()
class Item(Schema):
name: str
description: str = None
price: float
quantity: int
@api.post("/items")
def create_item(request, item: Item):
return {"item": item.dict()}
```
如果客户端发送的数据不符合 `Item` 模型的要求,Django Ninja 会自动返回详细的验证错误信息[^2]。
#### 6. 使用 WebSocket 进行消息推送
Django Ninja 还支持通过 WebSocket 实现实时消息推送功能。以下是一个简单的 WebSocket 配置示例:
```python
from ninja_extra.websocket import WebSocketHandler
class ChatHandler(WebSocketHandler):
async def on_connect(self):
await self.accept()
async def on_receive(self, text_data=None, bytes_data=None):
await self.send({"message": f"Echo: {text_data}"})
async def on_disconnect(self, close_code):
pass
```
将上述 WebSocket 处理器注册到 Django Ninja 中即可实现消息推送功能[^3]。
---
阅读全文
相关推荐



















