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中dir函数用法分析
Apr 17 Python
Python实现豆瓣图片下载的方法
May 25 Python
python多线程socket编程之多客户端接入
Sep 12 Python
python使用pygame框架实现推箱子游戏
Nov 20 Python
python批量修改ssh密码的实现
Aug 08 Python
python3应用windows api对后台程序窗口及桌面截图并保存的方法
Aug 27 Python
numpy.random.shuffle打乱顺序函数的实现
Sep 10 Python
Series和DataFrame使用简单入门
Nov 13 Python
python加载自定义词典实例
Dec 06 Python
pytorch中torch.max和Tensor.view函数用法详解
Jan 03 Python
pytorch 带batch的tensor类型图像显示操作
May 20 Python
你需要掌握的20个Python常用技巧
Feb 28 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 UTF8编码内的繁简转换类
2009/07/20 PHP
php实现redis数据库指定库号迁移的方法
2015/01/14 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
php的4种常用运行方式详解
2016/12/22 PHP
Yii框架应用组件用法实例分析
2020/05/15 PHP
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
查询json的数据结构的8种方式简介
2014/03/10 Javascript
上传图片js判断图片尺寸和格式兼容IE
2014/09/01 Javascript
jQuery时间插件jquery.clock.js用法实例(5个示例)
2016/01/14 Javascript
JS随机洗牌算法之数组随机排序
2016/03/23 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
利用C/C++编写node.js原生模块的方法教程
2017/07/07 Javascript
Angularjs实现上传图片预览功能
2017/09/01 Javascript
使用vue制作探探滑动堆叠组件的实例代码
2018/03/07 Javascript
vue实现在表格里,取每行的id的方法
2018/03/09 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[04:30]显微镜下的DOTA2第五期——拉比克
2013/09/26 DOTA
基于Python实现一个简单的银行转账操作
2016/03/06 Python
python实现class对象转换成json/字典的方法
2016/03/11 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
2018/09/13 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
python3的pip路径在哪
2020/06/23 Python
廉价航班、机票和酒店:JustFly
2018/02/07 全球购物
英国PC组件和在线电脑商店:SCAN
2019/04/18 全球购物
个人合作协议书范本
2014/04/18 职场文书
银行职员自我鉴定
2014/04/20 职场文书
试用期转正员工自我评价
2014/09/18 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
整脏治乱工作简报
2015/07/21 职场文书
小学英语教师2015年度个人工作总结
2015/10/14 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
详解python的内存分配机制
2021/05/10 Python
Vue如何实现组件间通信
2021/05/15 Vue.js
利用js实现简单开关灯代码
2021/11/23 Javascript