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 yield使用方法示例
Dec 04 Python
python实现的二叉树算法和kmp算法实例
Apr 25 Python
Python文档生成工具pydoc使用介绍
Jun 02 Python
通过数据库对Django进行删除字段和删除模型的操作
Jul 21 Python
Python存取XML的常见方法实例分析
Mar 21 Python
代码分析Python地图坐标转换
Feb 08 Python
pygame游戏之旅 添加游戏暂停功能
Nov 21 Python
学习python可以干什么
Feb 26 Python
python画微信表情符的实例代码
Oct 09 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
Selenium向iframe富文本框输入内容过程图解
Apr 10 Python
Python datetime模块的使用示例
Feb 02 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强制类型转换,慎用!
2013/06/06 PHP
PHP四大安全策略
2014/03/12 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
ThinkPHP实现转换数据库查询结果数据到对应类型的方法
2017/11/16 PHP
网站上面有这种切换效果
2006/06/26 Javascript
JQuery jsonp 使用示例代码
2009/08/12 Javascript
jQuery中filter(),not(),split()使用方法
2010/07/06 Javascript
LABjs、RequireJS、SeaJS的区别
2014/03/04 Javascript
javascript中通过arguments参数伪装方法重载
2014/10/08 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
2015/03/18 Javascript
基于vue 动态加载图片src的解决方法
2018/02/05 Javascript
详解angular路由高亮之RouterLinkActive
2018/04/28 Javascript
JS高级技巧(简洁版)
2018/07/29 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
vue中使用element组件时事件想要传递其他参数的问题
2019/09/18 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
小程序实现tab标签页
2020/11/16 Javascript
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
在类Unix系统上开始Python3编程入门
2015/08/20 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python  Django 母版和继承解析
2019/08/09 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
2019/12/19 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
Python实现自动签到脚本功能
2020/08/20 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
CSS3中Transition动画属性用法详解
2016/07/04 HTML / CSS
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
Ticketmaster德国票务网站:购买音乐会和体育等门票
2016/11/14 全球购物
Hashtable 添加内容的方式有哪几种,有什么区别?
2012/04/08 面试题
大学校运会广播稿
2014/02/03 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
2014年优秀党员材料
2014/12/18 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2015年学校政教工作总结
2015/07/20 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
PostgreSQL事务回卷实战案例详析
2022/03/25 PostgreSQL