Django实战-每日笑话接口封装

  • 2019 年 10 月 4 日
  • 笔记

Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。

通过前几小节的学习,也大概清楚服务端返回给小程序的 json 数据格式。会发现在处理返回的数据都是使用 JsonResponse 进行 json 的序列化与反序列化。

from django.http import JsonResponse

一、json 数据格式的每日笑话文件创建

title 标题

content 内容

[      {          "key": "5bc69eb56e36f0d9d1fa89d9",          "title": "u6628u5929u8fc7u751fu65e5uff0cu4e00u5927u5e2eu670b...",          "content": [              "u6628u5929u8fc7u751fu65e5uff0cu4e00u5927u5e2eu670bu53cbu4e00u8d77uff0cu70b9u8721u70dbu8bb8u613fuff0crnu5439u8721u70dbu7684u65f6u5019u4e00u4e2au529bu5ea6u6ca1u638cu63e1u597du628au5047u95e8u7259u5439u6389u4e86uff0cu6389u5728u4e86u86cbu7cd5u4e0a.."          ]      },  ]

二、json 数据格式文件读取

import json  import os  import random  from django.http import JsonResponse
def joke(request):      # 定义全局变量 all_jokes      global all_jokes      if not all_jokes:          # 加载文件          all_jokes = json.load(open(os.path.join(settings.BASE_DIR, "jokes.json"), "r"))      limits = 10      sample_jokes = random.sample(all_jokes, limits)      response = CommonResponseMixin.wrap_json_response(data=sample_jokes)      return JsonResponse(data=response, safe=False)

三、路由

from django.urls import path    from .views import service    urlpatterns = [      path("joke", service.joke),  ]