Skip to main content

传统方式创建接口

已经完成了应用的创建,接下来按照我们的常规操作,需要创建视图并在视图中展示数据。我们将数据展示为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格式数据,如下图所示:

01页面显示数据.jpg

如果我们想返回一个数据,例如电影信息,我们可以自定义“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)

此时页面就显示了一条数据,如下图所示:

02显示一条数据

以上就是整个过程,无论输出什么内容,都取决于后台传递的数据。