Django的前后端分离+REST表征性状态转移+RESTful API

Django的前后端分离

基本概念

FBV

基于函数的视图函数

缺点:

判断请求方式;

序列化难度较大;

data={
   
    'user':user
}

CBV

基于类的视图函数

不需要判断请求方式自动执行

缺点:

序列化难度大

DRF

django rest framework

专门来解决序列化的问题

FBV+DRF

基于函数的视图函数

缺点:

判断请求方式;

序列化难度较大;

django rest framework

专门来解决序列化的问题

CBV+DRF

基于类的视图函数

不需要判断请求方式自动执行

缺点:

序列化难度大

django rest framework

专门来解决序列化的问题

RESTful API

什么是REST

一种软件架构风格、设计风格、而不是标准,只是提供了一组设计原则和约束条件。它主要用户客户端和服务器交互类的软件。

基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存机制等。
REST全称是Representational State Transfer, 表征性状态转移。

给你接口

127.0.0.1:8000/user/add/    post
127.0.0.1:8000/user/delete/    delete   
127.0.0.1:8000/user/update/    put 
127.0.0.1:8000/user/find/    get

根据请求方式的不同执行不同的业务逻辑

127.0.0.1:8000/user/

表征性状态转移REST(representiontational state transfer)

根据不同的请求方式,进行表征性状态转移

表征性状态转移

本来都在接口上,现在放到视图函数里面了

def user(request):
    if request.method == 'GET':
        user.objects.filter
    if request.method == 'POST':
        user.save
    if request.method == 'delete':
        user.delete
    if request.method == 'put':
        user.save

REST(表征性状态转移)的出现

首次在2000年Roy Thomas Fielding的博士论文中出现,Fielding是一个
非常重要的人,他是HTTP协议(1.0版和1.1版)的主要设计者,Apache服务器软件的作者之一 ,Apache基金会的第一任主席。所以,他的这篇论文一经发表,就引起了广泛的关注。

论文

本文研究计算机科学两大前沿—软件和网络—的交叉点。长期以来,软件研究主要关注软件设计的分类、设计方法的演化,很少客观地评估不同的设计选择对系统行为的影响。而相反地,网络研究主要关注系统之间通信行为的细节、如何改进特定通信机制的表现,常常忽视了一个事实,那就是改变应用程序的互动风格比改变互动协议,对整体表现有更大的影响。我这篇文章的写作目的,就是想在符合架构原理的前提下,理解和评估以网络为基础的应用软件的架构设计,得到一个功能强、性能好、适宜通信的架构。

REST爆发

其实在REST架构推出的十几年间,它并没有一路高歌的发展,真正的大范围推广是在2013年之后,伴随着移动端的飞速发展,越来越多人的开始意识到,网站即软件,而且是一种新型的软件。这种"互联网软件采用"客户端/服务器"模式,也就是我们常说的C/S模式,这一切建立在分布式体系上,通过互联网通信,具有高延时,高并发等特点。网站开发,完全采用软件开发开发的模式。但传统上,软件和网络是两个不同的领域,很少有交集,软件开发主要针对单机环境,网络则主要研究系统之间的通信。我们需要考虑的是如何开发在互联网环境中使用软件。

理解RESTful

要理解RESTful架构,最好的就是去理解它的单词Representational State Transfer到底是什么意思,它的每一个词到底要表达什么。 REST的释义,“表现层状态转化”,其实这省略了主语。 “表现层”其实指的是 “资源(Resource)"的“表现层” 。

资源(resource)

所谓"资源”,就是网络上的一一个实体,或者说是网络上的一个具体信息。它可以是一段文本,一-张图片,-首歌曲,- -种服务,总之就是-个具体的实例你可以使用一-个URI (统-资源定位符)指向它,每种资源对应一个特定的URI要获取这个资源,访问它的URI就可以了,因此URI就成了每一个资源的地址或独一无二的识别符。所谓"上网”就是与互联网上一-系列的“资源”互动调用它们的URI。

表现层(reprensentational)
全部评论

相关推荐

行云流水1971:这份实习简历的优化建议: 结构清晰化:拆分 “校园经历”“实习经历” 板块(当前内容混杂),按 “实习→校园→技能” 逻辑排版,求职意向明确为具体岗位(如 “市场 / 运营实习生”)。 经历具象化:现有描述偏流程,需补充 “动作 + 数据”,比如校园活动 “负责宣传” 可加 “运营公众号发布 5 篇推文,阅读量超 2000+,带动 300 + 人参与”;实习内容补充 “协助完成 XX 任务,效率提升 X%”。 岗位匹配度:锚定目标岗位能力,比如申请运营岗,突出 “内容编辑、活动执行” 相关动作;申请市场岗,强化 “资源对接、数据统计” 细节。 信息精简:删减冗余表述(如重复的 “负责”),用短句分点,比如 “策划校园招聘会:联系 10 + 企业,组织 200 + 学生参与,到场率达 85%”。 技能落地:将 “Office、PS” 绑定经历,比如 “用 Excel 整理活动数据,输出 3 份分析表;用 PS 设计 2 张活动海报”,避免技能单独罗列。 优化后需强化 “经历 - 能力 - 岗位需求” 的关联,让实习 / 校园经历的价值更直观。 若需要进一步优化服务,私信
实习,投递多份简历没人回...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务