Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
通过前几小节的学习,也大概清楚服务端返回给小程序的 json 数据格式。会发现在处理返回的数据都是使用 JsonResponse 进行 json 的序列化与反序列化。
from django.http import JsonResponse
一、json 数据格式的每日笑话文件创建
title 标题
content 内容
[
{
"key": "5bc69eb56e36f0d9d1fa89d9",
"title": "\u6628\u5929\u8fc7\u751f\u65e5\uff0c\u4e00\u5927\u5e2e\u670b...",
"content": [
"\u6628\u5929\u8fc7\u751f\u65e5\uff0c\u4e00\u5927\u5e2e\u670b\u53cb\u4e00\u8d77\uff0c\u70b9\u8721\u70db\u8bb8\u613f\uff0c\r\n\u5439\u8721\u70db\u7684\u65f6\u5019\u4e00\u4e2a\u529b\u5ea6\u6ca1\u638c\u63e1\u597d\u628a\u5047\u95e8\u7259\u5439\u6389\u4e86\uff0c\u6389\u5728\u4e86\u86cb\u7cd5\u4e0a.."
]
},
]
二、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),
]