django1.5 中函数如何返回json数据
时间: 2024-01-21 12:19:59 浏览: 108
在 Django 1.5 中,可以使用 `JsonResponse` 来将数据序列化为 JSON 格式并返回给客户端。
首先需要导入 `JsonResponse`:
```python
from django.http import JsonResponse
```
然后,在视图函数中使用 `JsonResponse` 将数据序列化为 JSON 格式:
```python
import json
from django.http import JsonResponse
def my_view(request):
data = {'foo': 'bar'}
return JsonResponse(data)
```
这个视图函数会返回一个 JSON 格式的响应,内容为:
```json
{
"foo": "bar"
}
```
你也可以设置一些响应头信息。例如,要设置响应头的 `Content-Type` 为 `application/json`:
```python
def my_view(request):
data = {'foo': 'bar'}
return JsonResponse(data, content_type='application/json')
```
注意,`JsonResponse` 中的数据必须是可以序列化为 JSON 格式的 Python 对象。如果数据不能被序列化,会抛出一个异常。因此,如果需要返回复杂的数据结构,例如日期时间或自定义对象,需要使用 `json.dumps()` 方法预处理数据。
```python
from datetime import datetime
from django.http import JsonResponse
def my_view(request):
data = {
'datetime': datetime.now(),
'custom_object': MyCustomObject()
}
json_data = json.dumps(data, default=str)
return JsonResponse(json_data, content_type='application/json')
```