栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第十二章:Restful风格介绍

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第十二章:Restful风格介绍

  系列文章目录

第一章 :Django安装与配置虚拟环境

第二章:django各模块的作用以及参数说明

第三章:  Django的路由与视图

第四章:django请求

第五章:django会话

第六章:django中的cookie与session

第七章:视图类

第八章:模型类

第九章:django与mysql连接与迁移

第十章:django模型类(二)

第十一章:django之后台管理

文章目录

系列文章目录

文章目录

前言

一、web应用模式的介绍

1.前后端分离

介绍

工作流程图

2.前后端不分离(流行):

介绍

工作流程图

二.接口Api

1.自己定义一套接口

api文档

后端实现

总结



前言

        在web应用领域开发大多数都会使用Restful风格,可能有人要问,问什么要使用Restful,我自己想怎么写,怎么写,接口规范按我的来。那你有没有想过,有一天这个项目是一个团队在做,并且前后端时进行分离的呢,你写的这些东西别人能看懂吗?Restful就是为了解决这一问题所提出的。

        通过这篇文章了解一下前后端分离的设计理念以及使用django视图类来实现简单的Restful风格。

一、web应用模式的介绍

1.前后端分离

介绍

一批人做前端,一批人做后端,共同讨论一套开发文档(接口,数据类型,等等)前后端根据开发文档完成自己该完成的内容

前端:只负责前端页面的编写,通过接口像后端请求数据,把数据渲染到前端(浏览器或app)页面上

后端:实现开发文档中定义的接口,通过接口(请求参数,请求类型)返回后端处理过后的数据,不再负责前端页面的渲染,只负责数据的处理

特点:成本高,适合于大型web项目,分工明确

工作流程图

2.前后端不分离(流行): 介绍

前端后端是一伙人在写,后端处理完数据之后直接使用数据进行前端页面的渲染,在django中使用render()进行模板的渲染返回,方便了数据传递,接口调用的过程,成本降低,适合小型项目使用。

工作流程图

二.接口Api

一种特殊的路由,该路由是由前后端一起商议出来一套开发文档,里面包含接口参数,调用方式,由前端调用接口,后端给前端返回数据。

1.自己定义一套接口

api文档

 

后端实现
class BookInfo_getOne(View):
    def get(self, req, id):
        try:
            book = BookInfo.objects.get(id=id)
        except Exception as e:
            return JsonResponse({'message': '未查询到此书籍'}, status=404)
        book_dict = {
            'id': book.id,
            'name': book.name,
            'chuban_date': book.chuban_date,
            'read_count': book.read_count,
            'pinglun_count': book.pinglun_count,
            'is_del': book.pinglun_count,
        }
        return JsonResponse(book_dict, status=201)

    def put(self, req, id):
        try:
            book = BookInfo.objects.get(id=id)
        except Exception as e:
            return JsonResponse({'message': '未查询到此书籍'}, status=404)
        book_str = req.body.decode()
        book_json = json.loads(book_str)
        book.name = book_json['name']
        book.chuban_date = book_json['chuban_date']
        book.read_count = book_json['read_count']
        book.pinglun_count = book_json['pinglun_count']
        book.is_del = book_json['is_del']
        book.save()
        return JsonResponse(book_json, status=202)

    def delete(self, req, id):
        try:
            book = BookInfo.objects.get(id=id)
            book.delete()
        except ProtectedError as d:
            return JsonResponse({'message': '此书籍受关联外键保护'}, status=302)
        except Exception as e:
            return JsonResponse({'message': '未查询到此书籍'}, status=404)
        return JsonResponse({'message': '删除成功'}, status=203)

使用不同的方法调用同一个接口实现不同的功能,后端只管返回处理数据的结果,而不返回渲染后的前端界面


总结

使用不同的方法调用同一个接口实现不同的功能,后端只管返回处理数据的结果,而不返回渲染后的前端界面

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878875.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号