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中使用hashlib模块处理算法的教程
Apr 28 Python
总结python爬虫抓站的实用技巧
Aug 09 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
python实现kNN算法
Dec 20 Python
Pandas DataFrame 取一行数据会得到Series的方法
Nov 10 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
selenium中get_cookies()和add_cookie()的用法详解
Jan 06 Python
Selenium 滚动页面至元素可见的方法
Mar 18 Python
Python如何解除一个装饰器
Aug 07 Python
Python urlopen()参数代码示例解析
Dec 10 Python
jupyter 添加不同内核的操作
Feb 06 Python
python正则表达式re.search()的基本使用教程
May 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实现简单的计算器
2020/08/28 PHP
javascript 检测浏览器类型和版本的代码
2009/09/15 Javascript
JavaScript 对话框和状态栏使用说明
2009/10/25 Javascript
Ext.get() 和 Ext.query()组合使用实现最灵活的取元素方式
2011/09/26 Javascript
JS中的this变量的使用介绍
2013/10/21 Javascript
详解JavaScript中undefined与null的区别
2014/03/29 Javascript
jQuery中removeAttr()方法用法实例
2015/01/05 Javascript
javascript实现数字倒计时特效
2016/03/30 Javascript
js小数计算小数点后显示多位小数的实现方法
2016/05/30 Javascript
js修改onclick动作的四种方法(推荐)
2016/08/18 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
vue2.0结合Element实现select动态控制input禁用实例
2017/05/12 Javascript
详解webpack 如何集成第三方js库
2017/06/29 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
2017/10/24 jQuery
浅析JavaScript中的特殊数据类型
2017/12/15 Javascript
Koa日志中间件封装开发详解
2019/03/09 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
详解datagrid使用方法(重要)
2020/11/06 Javascript
用Python写的图片蜘蛛人代码
2012/08/27 Python
python 将字符串转换成字典dict
2013/03/24 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python实现两张图片拼接为一张图片并保存
2019/07/16 Python
PIL图像处理模块paste方法简单使用详解
2019/07/17 Python
基于python的列表list和集合set操作
2019/11/24 Python
pandas实现excel中的数据透视表和Vlookup函数功能代码
2020/02/14 Python
python实现简单的井字棋游戏(gui界面)
2021/01/22 Python
日本无添加化妆品:HABA
2016/08/18 全球购物
Melissa鞋马来西亚官方网站:MDreams马来西亚
2018/04/05 全球购物
项目建议书格式
2014/03/12 职场文书
房屋授权无偿使用证明
2014/11/29 职场文书
2014幼儿教师个人工作总结
2014/12/03 职场文书
2019大学生实习报告
2019/06/21 职场文书
Redis 操作多个数据库的配置的方法实现
2022/03/23 Redis
Hive导入csv文件示例
2022/06/25 数据库