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 Tkinter GUI编程入门介绍
Mar 10 Python
Python中不同进制的语法及转换方法分析
Jul 27 Python
python合并同类型excel表格的方法
Apr 01 Python
python3第三方爬虫库BeautifulSoup4安装教程
Jun 19 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
解决nohup执行python程序log文件写入不及时的问题
Jan 14 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
python代码如何实现余弦相似性计算
Feb 09 Python
pycharm无法导入本地模块的解决方式
Feb 12 Python
python数字类型math库原理解析
Mar 02 Python
Python描述符descriptor使用原理解析
Mar 21 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查询域名状态whois的类
2006/11/25 PHP
建站常用13种PHP开源CMS比较
2009/08/23 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
php安装swoole扩展的方法
2015/03/19 PHP
PHP根据session与cookie用户登录状态操作类的代码
2016/05/13 PHP
php+websocket 实现的聊天室功能详解
2020/05/27 PHP
关于javascript function对象那些迷惑分析
2011/10/24 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
js省市联动效果完整实例代码
2015/12/09 Javascript
Jsonp 关键字详解及json和jsonp的区别,ajax和jsonp的区别
2015/12/30 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
js canvas实现QQ拨打电话特效
2017/05/10 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
小程序卡片切换效果组件wxCardSwiper的实现
2020/02/13 Javascript
[28:05]完美世界DOTA2联赛循环赛Inki vs DeMonsTer 第一场 10月30日
2020/10/31 DOTA
简单介绍Python中的RSS处理
2015/04/13 Python
详解Python中列表和元祖的使用方法
2015/04/25 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
浅谈django开发者模式中的autoreload是如何实现的
2017/08/18 Python
Python实现一个简单的验证码程序
2017/11/03 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
Python使用pymongo库操作MongoDB数据库的方法实例
2019/02/22 Python
不到20行代码用Python做一个智能聊天机器人
2019/04/19 Python
python绘制多个子图的实例
2019/07/07 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
Python实现弹球小游戏
2020/08/01 Python
27个经典Linux面试题及答案,你知道几个?
2014/03/11 面试题
公司募捐倡议书
2014/05/14 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL