传统方式创建接口
已经完成了应用的创建,接下来按照我们的常规操作,需要创建视图并在视图中展示数据。我们将数据展示为JSON格式,而不再使用传统的页面。接下来,我们要配置URL。在全局配置文件中找到dx_movie/urls.py文件中的urlpatterns代码块,然后添加一个路由,命名为API/movie,并使用include引入movie.urls。代码如下:
# 从Django中导入必要的模块
from django.contrib import admin
from django.urls import path, include
# 为项目定义URL模式
urlpatterns = [
# 管理员站点URL
path('admin/', admin.site.urls),
# 用于电影相关端点的URL模式
# 当请求以'aip/movie/'开头时,将重定向到'movie.urls'的URL配置。
# 'namespace'参数用于通过为包含的URL配置中定义的URL名称添加前缀来区分URL。
path('aip/movie/', include('movie.urls', namespace='movie')),
]
在movie文件夹下创建一个urls.py文件。在这个文件中,我们写上路由,模仿刚才的代码形式。首先,我们导入模型,代码如下:
# 从Django中导入路径函数和views模块
from django.urls import path
from movie import views
# 设置应用程序名称
app_name = 'movie'
# 定义URL模式列表
urlpatterns = [
# 对根路径的视图MovieList进行映射,并命名为'list'
path('', views.MovieList.as_view(), name='list'),
]
接下来我们在movie文件下的views.py文件中创建movie list函数,代码如下:
# 从Django中导入render和JsonResponse函数
from django.shortcuts import render
from django.http import JsonResponse
# 从models模块中导入Movie模型
from .models import Movie
def movie_list(request):
# 获取所有电影数据
movies = Movie.objects.all().values_list()
# 将数据转换为列表形式
data = list(movies)
# 返回JSON响应
return JsonResponse(data, safe=False)
为了看到效果,我们先启动服务,在vscode终端输入如下代码:
python manage.py runserver
在浏览器地址栏输入ulr127.0.0.1:8000/aip/movie/,此时浏览器页面就以列表显示了JSON格式数据,如下图所示:

如果我们想返回一个数据,例如电影信息,我们可以自定义“data”字典,以包含特定的细节,如电影名称、上映日期和评分。代码如下:
# 从Django中导入render和JsonResponse函数
from django.shortcuts import render
from django.http import JsonResponse
# 从models模块中导入Movie模型
from .models import Movie
def movie_list(request):
# 获取所有电影数据
movies = Movie.objects.all().values_list()
data = {
'movie_name':‘碟中谍’,
'rate': 7.8
}
# 返回JSON响应
return JsonResponse(data, safe=False)
此时页面就显示了一条数据,如下图所示:

以上就是整个过程,无论输出什么内容,都取决于后台传递的数据。
【大熊课堂精品课程】
Python零基础入门动画课: https://www.bilibili.com/cheese/play/ss7988
Django+Vue:全栈开发: https://www.bilibili.com/cheese/play/ss8134
PyQT6开发桌面软件: https://www.bilibili.com/cheese/play/ss12314
Python办公自动化: https://www.bilibili.com/cheese/play/ss14990
Cursor AI编程+MCP:零基础实战项目课: https://www.bilibili.com/cheese/play/ss105194189
Pandas数据分析实战: https://www.bilibili.com/cheese/play/ss734522035
AI大模型+Python小白应用实战: https://www.bilibili.com/cheese/play/ss3844