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自动化工具日志查询分析脚本代码实现
Nov 26 Python
python2.7删除文件夹和删除文件代码实例
Dec 18 Python
Python中的引用和拷贝浅析
Nov 22 Python
Python实现在线程里运行scrapy的方法
Apr 07 Python
Python中文件的读取和写入操作
Apr 27 Python
pygame实现雷电游戏雏形开发
Nov 20 Python
Python检查ping终端的方法
Jan 26 Python
超实用的 30 段 Python 案例
Oct 10 Python
Python实现CAN报文转换工具教程
May 05 Python
Python读取二进制文件代码方法解析
Jun 22 Python
Python用来做Web开发的优势有哪些
Aug 05 Python
TensorFlow的环境配置与安装方法
Feb 20 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正则
2006/07/07 PHP
JAVA/JSP学习系列之六
2006/10/09 PHP
php jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
图文详解PHP环境搭建教程
2016/07/16 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
javaScript call 函数的用法说明
2010/04/09 Javascript
showModalDialog在谷歌浏览器下会返回Null的解决方法
2013/11/27 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
使用 Node.js 实现图片的动态裁切及算法实例代码详解
2018/09/29 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Openlayers实现扩散的动态点(水纹效果)
2020/08/17 Javascript
JavaScript实现滚动加载更多
2020/12/27 Javascript
在IIS服务器上以CGI方式运行Python脚本的教程
2015/04/25 Python
详细解析Python中的变量的数据类型
2015/05/13 Python
Python使用ConfigParser模块操作配置文件的方法
2018/06/29 Python
python实现统计代码行数的小工具
2019/09/19 Python
Python实现图片添加文字
2019/11/26 Python
使用matplotlib绘制图例标签中带有公式的图
2019/12/13 Python
Python用5行代码实现批量抠图的示例代码
2020/04/14 Python
使用jTopo给Html5 Canva中绘制的元素添加鼠标事件
2014/05/15 HTML / CSS
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
门卫岗位职责
2013/11/15 职场文书
课外小组活动总结
2014/08/27 职场文书
国际贸易本科毕业生求职信
2014/09/26 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
2014年综合治理工作总结
2014/11/20 职场文书
现役军人家属慰问信
2015/03/24 职场文书
2015年秋季学校开学标语
2015/07/16 职场文书
PyQt5 显示超清高分辨率图片的方法
2021/04/11 Python
python内置进制转换函数的操作
2021/06/02 Python
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
聊一聊Redis与MySQL双写一致性如何保证
2021/06/26 Redis
MySQL主从切换的超详细步骤
2022/06/28 MySQL