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中实现迭代器(iterator)的方法示例
Jan 19 Python
Python随机生成手机号、数字的方法详解
Jul 21 Python
Python3多线程基础知识点
Feb 19 Python
python自动化测试之如何解析excel文件
Jun 27 Python
python正则表达式匹配不包含某几个字符的字符串方法
Jul 23 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
Python操作SQLite数据库过程解析
Sep 02 Python
python Tensor和Array对比分析
Jan 08 Python
Python 实现opencv所使用的图片格式与 base64 转换
Jan 09 Python
Python 测试框架unittest和pytest的优劣
Sep 26 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 15 Python
基于Python的身份证验证识别和数据处理详解
Nov 14 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设计模式 Facade(外观模式)
2011/06/26 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
PDO::_construct讲解
2019/01/27 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
Extjs学习过程中新手容易碰到的低级错误积累
2010/02/11 Javascript
基于jquery实现的服务器验证控件的启用和禁用代码
2010/04/27 Javascript
juqery 学习之五 文档处理 包裹、替换、删除、复制
2011/02/11 Javascript
JavaScript高级程序设计阅读笔记(五) ECMAScript中的运算符(一)
2012/02/27 Javascript
基于Jquery实现的一个图片滚动切换
2012/06/21 Javascript
jQuery JSON实现无刷新三级联动实例探讨
2013/05/28 Javascript
jquery文档操作wrap()方法实例简述
2015/01/10 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
详解js实时获取并显示当前时间的方法
2019/05/10 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
在vue中使用el-tab-pane v-show/v-if无效的解决
2020/08/03 Javascript
vue组件开发之slider组件使用详解
2020/08/21 Javascript
vue 使用vant插件做tabs切换和无限加载功能的实现
2020/11/04 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
Python标准模块--ContextManager上下文管理器的具体用法
2017/11/27 Python
python实现Dijkstra算法的最短路径问题
2019/06/21 Python
python2 对excel表格操作完整示例
2020/02/23 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Python获取浏览器窗口句柄过程解析
2020/07/25 Python
matplotlib部件之套索Lasso的使用
2021/02/24 Python
BabyBjörn婴儿背带法国官网:BabyBjorn法国
2018/06/16 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
大学自主招生自荐信
2013/12/16 职场文书
十岁生日父母答谢词
2014/01/18 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
自信主题班会
2015/08/14 职场文书
字典算法实现及操作 --python(实用)
2021/03/31 Python
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python