MTV和MVC、批量插入数据
一、MTV和MVC的概念
1、 MVC(Model-View-Controller)模式:(传统的模式,比如java、php中)
1 Model(模型): 数据层,负责处理应用程序的数据逻辑,包括数据库操作、数据验证、业务规则等。模型通常封装了与数据相关的操作,如增删改查。 2 View(视图): 用户界面层,负责显示数据并与用户进行交互。视图从模型中获取数据并呈现给用户,同时也接收用户输入,将其传递给控制器进行处理。 3 Controller(控制器): 控制层,负责协调模型和视图之间的交互,处理用户输入并作出响应。控制器接收用户的请求,根据请求调用相应的模型逻辑和视图进行响应。
2、MTV(Model-Template-View)模式:
1 Model(模型): 类似于 MVC 中的模型,处理数据逻辑,包括数据库操作和业务规则。 2 Template(模板): 类似于 MVC 中的视图,负责呈现数据给用户。模板是 HTML 文件,其中包含用于展示数据的标记和模板语法。 3 View(视图): 类似于 MVC 中的控制器,处理用户请求并与模型和模板进行交互。视图负责业务逻辑,将模型的数据传递给模板进行渲染,然后将渲染后的页面返回给用户。
主要区别在于 MTV 中的视图(View)不同于传统 MVC 中的控制器(Controller)。
在 Django 中,视图更专注于处理业务逻辑,从模型中获取数据并将其传递给模板进行渲染,然后返回渲染后的页面给用户。控制器的部分职责在 Django 的视图和模板中共同完成。
在 Django 的 MTV 架构中,模型(Model)处理数据逻辑,模板(Template)负责界面呈现,视图(View)则处理业务逻辑和请求响应。这种分层结构使代码更加清晰、模块化,有助于快速开发和维护高质量的 Web 应用程序。
二、ajax提交的json格式的数据
django后端不在把数据封装到request.POST中
提交json格式的数据必须满足两个条件:
1. 你的编码格式必须是json格式的:contentType参数
2. 你的数据必须是json {"a":1}
# 针对json格式的数据,Django后端又是如何处理的?
针对ajax提交的json格式的数据,django后端不在把数据封装到request.POST中了
# 对于json格式的数据,django后端不在做任何的封装,数据是纯原生的,发送过来的数据是二进制形式的
# 我们自己来处理这些二进制数据
# js中序列化
JSON.stringify({'a': 1, b: 2}) ----------》{'a': 1, b: 2} 对象
contentType:'application/json',
# django后端接收json格式的数据
json_str = request.body.decode('utf-8')
print(json_str) # {"a":1,"b":2}
json_data = json.loads(json_str)
print(json_data) # {'a': 1, 'b': 2}
print(json_data.get('a'))
三、
user_obj_list = []
for i in range(100000):
user_obj = models.UserInfo(username='jerry_%s' % i)
user_obj_list.append(user_obj)
print('jerry_%s' % i)
'''开始操作数据库'''
models.UserInfo.objects.bulk_create(user_obj_list)
user_obj = models.UserInfo(username='jerry_%s' % i) 是在一个循环中创建 models.UserInfo 类的实例,并将其添加到名为 user_obj_list 的列表中
如在数据库批量插入时,以减少与数据库的交互次数,从而提高性能。
在代码的最后,通过 models.UserInfo.objects.bulk_create(user_obj_list) 将 user_obj_list 中的所有实例一次性批量插入到数据库中。这样可以减少每次插入操作的开销,从而更高效地存储大量数据。

浙公网安备 33010602011771号