django之十七--如何提供一个规范的接口返回值

一、前言

首先,整体的开发思路是:比如一个前端开发人员A和一个后端开发人员B,一起联调一个【查询用户数据】功能,那么前端开发人员A就负责【查询用户数据的页面】的开发,后端开发人员B就负责【查询用户数据的接口】的开发且开发完成且自测通过后提供给前端开发人员A进行联调。

我们要知道,前端开发人员A和后端开发人员B一起开发这个功能的前提都是要严格产品人员编写的需求文档和原型图进行开发的。

所以前端开发人员A在实际开发过程中会要求后端开发人员提供的【查询用户数据的接口】的返回值必须满足这两点:

⑴.必须有返回前端开发人员A需要的所有字段和字段值信息,因为前端开发人员才能拿到这些数据去进行自测确保数据都没遗漏;

⑵.每个字段值的数据结构要满足前端开发人员A的要求,因为前端开发人员A会拿到这样的字段值直接去做相关处理而不需要对字段值的数据结构进行二次处理从而能提高前端开发人员A的开发效率也能提高数据的加载效率。

细节:

①.在django框架里,接口其实就是视图函数,只是称呼不一致而已。

②.后续涉及的前后端接口联调流程,基本按照这样的思路去进行即可。

二、进行实际的一个完整流程操作

2.1.第一步:编写一个用于查询用户数据的视图函数


 

def search_person(request):

    # 进行实际的一个完整流程操作

    try:

        res = Person.objects.all().values()

        res = list(res)

    except:

        raise ("查询语句执行过程中出现报错信息,程序终止执行!")

    # 初始化一个空dict,用于存储要返回给起前端页面的所有字段和对应字段值,且字段对应字典的key,字段值对应字典的value;

    data = {}



    if len(res) != 0:

        # 第一步:把数据表的相关数据都存储在这个key【result】

        data["result"] = res

        # 第二步:把状态码200的值存储在这个key【code】

        data["code"] = 200

        # 第三步:把状态success的值存储在这个key【success】

        data["success"] = True

        # 第四步:把信息的值存储在这个key【msg】

        data["msg"] = "获取数据成功!"

    else:

        data["result"] = res

        data["code"] = 100

        data["success"] = False

        data["msg"] = "获取不到数据"

    return JsonResponse(data, json_dumps_params={"ensure_ascii": False})

2.2.第二步:编写对应的一个url匹配规则

细节:

①.url匹配规则在之前已经配置好了,在之前的博客文章里可以找到对应内容,在这篇博客里不再继续重复写一遍了;

2.3.第三步:启动django项目【helloworld】服务

2.4.第四步:通过任一浏览器访问url地址【http://127.0.0.1:8000/search_person】后查看展示数据

2.5.第五步:复制接口返回值去【https://www.json.cn/】进行json数据在线解析和格式化,方便直观查看数据

{

    "result":[

        {

            "id":1,

            "name":"杨见文",

            "age":25

        },

        {

            "id":2,

            "name":"廖旺良",

            "age":26

        },

        {

            "id":3,

            "name":"王凯",

            "age":28

        },

        {

            "id":4,

            "name":"陈凯",

            "age":28

        }

    ],

    "code":200,

    "success":true,

    "msg":"获取数据成功!"

}

猜你喜欢

转载自blog.csdn.net/LYX_WIN/article/details/114520519