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实现冒泡,插入,选择排序简单实例
Aug 18 Python
零基础写python爬虫之使用urllib2组件抓取网页内容
Nov 04 Python
python使用KNN算法手写体识别
Feb 01 Python
python删除不需要的python文件方法
Apr 24 Python
python爬取指定微信公众号文章
Dec 20 Python
Python中最大递归深度值的探讨
Mar 05 Python
python实现对输入的密文加密
Mar 20 Python
详解利用OpenCV提取图像中的矩形区域(PPT屏幕等)
Jul 01 Python
python随机数分布random均匀分布实例
Nov 27 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
Django ValuesQuerySet转json方式
Mar 16 Python
Pycharm导入anaconda环境的教程图解
Jul 31 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
114啦源码(114la)不能生成地方房产和地方报刊问题4级页面0字节的解决方法
2012/01/12 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
PHP中require和include路径问题详解
2014/12/25 PHP
PHP对象克隆clone用法示例
2016/09/28 PHP
发布BlueShow v1.0 图片浏览器(类似lightbox)blueshow.js 打包下载
2007/07/21 Javascript
提高jQuery性能的十个诀窍
2013/11/14 Javascript
详解jQuery插件开发中的extend方法
2013/11/19 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
JavaScript Promise 用法
2016/06/14 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
jquery封装插件时匿名函数形参和实参的写法解释
2017/02/14 Javascript
AngularJS $http模块POST请求实现
2017/04/08 Javascript
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
[54:51]Ti4 冒泡赛第二轮LGD vs C9 3
2014/07/14 DOTA
Python写的一个简单监控系统
2015/06/19 Python
详解Python中heapq模块的用法
2016/06/28 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
深入分析python数据挖掘 Json结构分析
2018/04/21 Python
spark: RDD与DataFrame之间的相互转换方法
2018/06/07 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
11个Python3字典内置方法大全与示例汇总
2019/05/13 Python
python Kmeans算法原理深入解析
2019/08/23 Python
Python实现鼠标自动在屏幕上随机移动功能
2020/03/14 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
澳大利亚Rockwear官网:女子瑜伽、健身和运动服
2021/01/26 全球购物
俄罗斯购买内衣网站:Trusiki
2020/08/22 全球购物
医务人员自我评价
2014/01/26 职场文书
运动会广播稿150字
2014/02/19 职场文书
学生党员公开承诺书
2014/05/28 职场文书
2015年新学期寄语
2015/02/26 职场文书
怎样写辞职信
2015/02/27 职场文书
学校安全管理制度
2015/08/06 职场文书
MySQL数据库事务的四大特性
2022/04/20 MySQL
MySQL导致索引失效的几种情况
2022/06/25 MySQL