Django 中如何使用 URL 包装器来处理 JSON 请求?

2023-04-11 00:00:00 django 请求 如何使用

在 Django 中处理 JSON 请求,可以使用 URL 包装器来解析请求参数和返回响应。以下是一个简单的例子:

  1. 创建一个视图函数,该视图函数可以接收 JSON 格式的 POST 请求。
import json
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt

@csrf_exempt
def my_view(request):
    if request.method == 'POST':
        data = json.loads(request.body)
        name = data.get('name')
        email = data.get('email')
        result = {'status': 'OK', 'message': 'received JSON data', 
                  'name': name, 'email': email}
        return JsonResponse(result)
    else:
        return JsonResponse({'status': 'error', 'message': 'only POST requests allowed'})
  1. 在 urls.py 中定义一个 URLConf 来处理这个视图函数。
from django.urls import path
from myapp.views import my_view

urlpatterns = [
    path('api/myview/', my_view),
]
  1. 通过 POSTman 或其他发送 POST 请求的客户端发送 JSON 数据。

例如,发送以下 JSON 数据:

{
  "name": "pidancode.com",
  "email": "info@pidancode.com"
}
  1. 收到响应后,客户端应该能够看到以下 JSON 数据:
{
  "status": "OK",
  "message": "received JSON data",
  "name": "pidancode.com",
  "email": "info@pidancode.com"
}

在这个例子中,我们使用了 Django 的自带 JsonResponse 方法来生成 JSON 格式的响应。该方法接受一个字典作为参数,并自动序列化成 JSON 格式的数据。我们还使用了 Django 的自带 csrf_exempt 装饰器来跳过 CSRF 验证,以便客户端可以直接使用 POST 请求发送 JSON 数据。

相关文章