📜  从 mysql django 获取 json 数组 - Python (1)

📅  最后修改于: 2023-12-03 15:36:14.424000             🧑  作者: Mango

从 MySQL Django 获取 JSON数组 - Python

在开发Web应用程序时,常常需要从MySQL数据库中获取数据,并将其用JSON格式呈现给前端页面。Python的Django框架提供了一个简单的方法来实现这种功能。本文将向您介绍如何使用Django ORM从MySQL数据库中检索数据,并将其转换为JSON数组。

准备工作

在开始之前,确保您已经安装了Django框架以及MySQL数据库,并且已经创建了一个包含数据的数据库表。如果您还没有安装Django框架,请先参考官方文档进行安装。

步骤一:导入模块

在Django应用程序中,需要导入以下模块:

from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
from .models import MyModel

其中,JsonResponse用于将Python对象序列化为JSON响应。csrf_exempt用于禁用跨站请求伪造(CSRF)保护。MyModel是一个Django ORM模型,它代表了本文将要使用的数据库表。

步骤二:定义视图函数

在Django应用程序中,可以通过定义视图函数来实现后端API。这里我们将定义一个视图函数,用于从数据库中检索数据,并将其转换为JSON响应。

@csrf_exempt
def my_view(request):
    queryset = MyModel.objects.all()
    data = list(queryset.values())
    return JsonResponse(data, safe=False)

在上面的代码中,我们首先使用MyModel.objects.all()从数据库中检索所有数据。然后,我们将数据转换为列表格式,并使用JsonResponse将其序列化为JSON响应。

需要注意的是,在使用JsonResponse时,我们必须将safe参数设置为False,以避免出现“序列化”错误。

步骤三:配置URL

当视图函数定义完成后,还需要将其配置为一个URL,以便前端页面可以通过该URL访问后端API。可以通过修改urls.py文件来配置URL。

from django.urls import path
from .views import my_view

urlpatterns = [
    path('my-api/', my_view, name='my_api'),
]

在上面的代码中,我们通过path函数将URL /my-api/与视图函数 my_view 关联起来,并命名为 my_api。因此,前端页面可以通过/my-api/访问后端API。

测试结果

最后,我们可以使用curl命令来测试我们的API是否正常工作:

$ curl http://localhost:8000/my-api/

如果一切正常,我们将获得一个包含数据库表中所有数据的JSON数组。

至此,我们已经成功地从MySQL Django获取了JSON数组。希望这篇文章对您有所帮助!