web开发模式

it2023-01-04  74

需求:获取书本数据

接口定义:

​ 请求方式: GET

​ 请求路径:/books/

​ 请求参数:无

​ 响应数据:返回书本数据

开发模式一:前后端不分离

1.浏览器获得一个完整的html页面数据

2.后端有两大核心任务:

数据处理(从数据库获取数据,构建模板)

渲染页面

class BooksView(View):

​ def get(self, request):

提取参数

校验参数8

业务处理:

3.1获取数据库书本数据

books = BookInfo.objects.all()# 查询集

把数据填充到模板中

在djano里配置模板templates

3.2构建模板参数

data = {# 存储书本字典

​ ‘books’: []

}

for book in books:

data[‘books’].append({

​ ‘bititle’:book.title,

​ …

})

rend函数:渲染页面(动态数据+html模板= 完整的html页面)

return render(request, ‘index.html’, context = data)

index.html:

{% for book in books %}

书名:{{book.title}};出版日期:{{book.bpub_data}}

{% endfor%}

返回响应

路由映射

re_path(r’^books/$’, view. BookInfo.as_views())

开发模式二:前后端分离

class BooksView(View):

​ def get(self, request):

提取参数

校验参数

业务处理:

3.1获取数据库书本数据

books = BookInfo.objects.all()# 查询集

把数据填充到模板中

在djano里配置模板templates

3.2构建模板参数

data = {# 存储书本字典

​ ‘books’: []

}

for book in books:

data[‘books’].append({

​ ‘bititle’:book.title,

​ …

})

后端直接返回数据

return Jsonresponse(data)

分离

分离的是业务逻辑:数据处理和渲染页面

前后端不分离:

后端既负责数处理又负责渲染页面

前后端分离:

后端只负责数据处理

前段负责页面渲染

前后端分离的优点

1.减轻后端服务器压力,后端只需处理数据

2.一台后端可以适配多个前端(客户端)

最新回复(0)