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时区设置方法与pytz查询时区教程
Nov 27 Python
Perl中著名的Schwartzian转换问题解决实现
Jun 02 Python
python目录与文件名操作例子
Aug 28 Python
PyCharm在win10的64位系统安装实例
Nov 26 Python
numpy 计算两个数组重复程度的方法
Nov 07 Python
Python获取时间范围内日期列表和周列表的函数
Aug 05 Python
python批量修改ssh密码的实现
Aug 08 Python
应用OpenCV和Python进行SIFT算法的实现详解
Aug 21 Python
Python 爬虫实现增加播客访问量的方法实现
Oct 31 Python
python利用dlib获取人脸的68个landmark
Nov 27 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
让你相见恨晚的十个Python骚操作
Nov 18 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会员权限控制实现原理分析
2011/05/29 PHP
php利用单例模式实现日志处理类库
2014/02/10 PHP
PHP文件锁定写入实例解析
2014/07/14 PHP
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHP下载文件的函数实例代码
2016/05/18 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
js实现的奥运倒计时时钟效果代码
2015/12/09 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
vue 多入口文件搭建 vue多页面搭建的实例讲解
2018/03/12 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
python中abs&map&reduce简介
2018/02/20 Python
python skimage 连通性区域检测方法
2018/06/21 Python
python实现证件照换底功能
2019/08/20 Python
利用Python代码实现一键抠背景功能
2019/12/29 Python
如何使用Python自动生成报表并以邮件发送
2020/10/15 Python
H5离线存储Manifest原理及使用
2020/04/28 HTML / CSS
美的官方商城:Midea
2016/09/14 全球购物
如何用PHP实现邮件发送
2012/12/26 面试题
会计专业毕业生求职信分享
2014/01/03 职场文书
致标枪运动员加油稿
2014/02/15 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
护理学院专科毕业生求职信
2014/06/28 职场文书
公务员中国梦演讲稿
2014/08/19 职场文书
房屋租赁合同解除协议书
2014/10/11 职场文书
销售工作决心书
2015/02/04 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
死亡诗社观后感
2015/06/05 职场文书
党校培训学习心得体会
2016/01/06 职场文书
JavaScript实现显示和隐藏图片
2021/04/29 Javascript
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android