django框架model orM使用字典作为参数,保存数据的方法分析


Posted in Python onJune 24, 2019

本文实例讲述了django框架model orM使用字典作为参数,保存数据的方法。分享给大家供大家参考,具体如下:

假设有一个字典,里面已经有了所有相关信息,现在想利用这个字典作为参数,跟django model  结合,用很少的代码量保存数据,有什么简便方法,比如有如下定义的model:

from django.db import models
class MyModel(models.Model):
  title=models.CharField(max_length=250)
  body= models.CharField(max_length=1000)
  ....

有一个字典:

data_dict = {
  'title' : 'awesome title',
  'body' : 'great body of text',
}

如果按照常规的做法,可能采用如下方式去保存数据:

mymodel = MyModel()
mymodel.title = data_dict['title']
mymodel.bdy = data_dict['body']
mymodel.save()

或者这样

mymodel = MyModel(title=data_dict['title'],body=data_dict['body'])
mymodel.save()

其实是一样的,从dict里面去取得数据。

其实还有更简单的方法,直接传入这个dict数据,但前提是: 字典数据里面的key 字段一定要与model中定义的field 对应,否则就会报错.但事实上在封装dict数据的时候,完全可以对应的。用如下方法保存

mymodel = MyModel(**data_dict)
mymodel.save()

如果还有一些其他的扩展字段,也是可以加在里面的,但注意. **data_dict 必须放在最后:

mymodel =MyModel(extra='hello', extra2='world', **data_dict)
mymodel .save()

还可以这样做:

MyModel.objects.create(**data_dict)

这样就只是实现了django model保存dict ,并且还可以扩展

2013-01-04日更新:最近在一篇文章中发现,如果要用字典dict作为参数更新一个model的方法如下:

mymodel=MyModel.objects.get(pk=pk)#....找到唯一的一个,自行修改
mymodel.__dict__.update(data_dict )
mymodel.save()

当然也有用如下方式实现更新的:

MyModel.objects.filter(pk=pk).update(**data_dict )

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
python数据结构之二叉树的遍历实例
Apr 29 Python
python提示No module named images的解决方法
Sep 29 Python
Python使用ntplib库同步校准当地时间的方法
Jul 02 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
简单了解python变量的作用域
Jul 30 Python
基于TensorFlow常量、序列以及随机值生成实例
Jan 04 Python
详解字符串在Python内部是如何省内存的
Feb 03 Python
Python获取二维数组的行列数的2种方法
Feb 11 Python
通过案例解析python鸭子类型相关原理
Oct 10 Python
python时间time模块处理大全
Oct 25 Python
Python创建文件夹与文件的快捷方法
Dec 08 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 Python
python对文件目录的操作方法实例总结
Jun 24 #Python
详解10个可以快速用Python进行数据分析的小技巧
Jun 24 #Python
python跳出双层for循环的解决方法
Jun 24 #Python
解决python xx.py文件点击完之后一闪而过的问题
Jun 24 #Python
解决python执行不输出系统命令弹框的问题
Jun 24 #Python
python实现在cmd窗口显示彩色文字
Jun 24 #Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 #Python
You might like
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
2018/06/16 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
JsDom 编程小结
2011/08/09 Javascript
仿猪八戒网左下角的文字滚动效果
2011/10/28 Javascript
Jquery自定义button按钮的几种方法
2014/06/11 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
Javascript打印局部页面实例
2016/06/21 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
jquery广告无缝轮播实例
2017/01/05 Javascript
AngularJS表单基本操作
2017/01/09 Javascript
Vue.js 2.0中select级联下拉框实例
2017/03/06 Javascript
vue.js中mint-ui框架的使用方法
2017/05/12 Javascript
Webpack如何引入bootstrap的方法
2017/06/17 Javascript
NodeJS链接MySql数据库的操作方法
2017/06/27 NodeJs
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
vue-infinite-loading2.0 中文文档详解
2018/04/08 Javascript
Webpack按需加载打包chunk命名的方法
2019/09/22 Javascript
jQuery实现二级导航菜单的示例
2020/09/30 jQuery
Express 配置HTML页面访问的实现
2020/11/01 Javascript
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python实现人机猜拳小游戏
2020/02/03 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
python_array[0][0]与array[0,0]的区别详解
2020/02/18 Python
Linux系统下升级pip的完整步骤
2021/01/31 Python
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
请解释接口的显式实现有什么意义
2012/05/26 面试题
花卉与景观设计系大学生求职信
2013/10/01 职场文书
秋冬农业生产标语
2014/10/09 职场文书
公司感谢信范文
2015/01/22 职场文书
2015毕业生简历自我评价
2015/03/02 职场文书
劳动仲裁调解书
2015/05/20 职场文书
家属联谊会致辞
2015/07/31 职场文书
浅谈Python3中datetime不同时区转换介绍与踩坑
2021/08/02 Python
基于Redis6.2.6版本部署Redis Cluster集群的问题
2022/04/01 Redis