Django 中如何使用 URL 包装器来处理 JSON 请求?
在 Django 中处理 JSON 请求,可以使用 URL 包装器来解析请求参数和返回响应。以下是一个简单的例子:
- 创建一个视图函数,该视图函数可以接收 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'})
- 在 urls.py 中定义一个 URLConf 来处理这个视图函数。
from django.urls import path from myapp.views import my_view urlpatterns = [ path('api/myview/', my_view), ]
- 通过 POSTman 或其他发送 POST 请求的客户端发送 JSON 数据。
例如,发送以下 JSON 数据:
{ "name": "pidancode.com", "email": "info@pidancode.com" }
- 收到响应后,客户端应该能够看到以下 JSON 数据:
{ "status": "OK", "message": "received JSON data", "name": "pidancode.com", "email": "info@pidancode.com" }
在这个例子中,我们使用了 Django 的自带 JsonResponse 方法来生成 JSON 格式的响应。该方法接受一个字典作为参数,并自动序列化成 JSON 格式的数据。我们还使用了 Django 的自带 csrf_exempt 装饰器来跳过 CSRF 验证,以便客户端可以直接使用 POST 请求发送 JSON 数据。
相关文章