已经是字典格式了,为什么在更新数据库之前又用pydantic转换了一下格式

问题

flask L3项目实战部分update_course函数开头course_json = request.get_json()获得的已经是字典格式了,为什么在更新数据库之前又用pydantic转换了一下格式data = CourseModel.model_validate(course_json).model_dump()

产生的原因

没有正确理解json格式和字典格式的区别

解决方法

  1. json格式和字典格式虽然都是以键和值组成的集合但也是存在区别的,并不完全一样。
  2. request.get_json() 用于从HTTP请求中提取JSON格式的数据并尝试解析请求体中的JSON数据,它会根据JSON的内容的内容将数据转换成其他数据结构,并不能保证就是标准的字典结构。
  3. 在应用的时候要使用 data = CourseModel.model_validate(course_json).model_dump(),确保使用的数据就是我们想要的,可以避免很多错误发生。