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正则表达式抓取成语网站
Nov 20 Python
收集的几个Python小技巧分享
Nov 22 Python
python实现简单socket程序在两台电脑之间传输消息的方法
Mar 13 Python
Python中的字典与成员运算符初步探究
Oct 13 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
Jan 20 Python
python实现人脸识别代码
Nov 08 Python
python读取文本中数据并转化为DataFrame的实例
Apr 10 Python
通过Pandas读取大文件的实例
Jun 07 Python
Django web框架使用url path name详解
Apr 29 Python
使用celery执行Django串行异步任务的方法步骤
Jun 06 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
python针对Oracle常见查询操作实例分析
Apr 30 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抽象类 介绍
2012/06/13 PHP
php下载文件的代码示例
2012/06/29 PHP
如何让thinkphp在模型中自动完成session赋值小教程
2014/09/05 PHP
PHP pear安装配置教程
2016/05/14 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
2017/08/07 PHP
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
JS闭包用法实例分析
2017/03/27 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
学习Vue组件实例
2018/04/28 Javascript
jQuery发请求传输中文参数乱码问题的解决方案
2018/05/22 jQuery
微信小程序自定义prompt组件步骤详解
2018/06/12 Javascript
从零开始实现Vue简单的Toast插件
2018/12/03 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
layui table 列宽百分比显示的实现方法
2019/09/28 Javascript
JS动态图片的实现方法完整示例
2020/01/13 Javascript
[02:51]DOTA2英雄基础教程 艾欧
2014/01/13 DOTA
python处理multipart/form-data的请求方法
2018/12/26 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
基于Python的自媒体小助手---登录页面的实现代码
2020/06/29 Python
利用html5 file api读取本地文件示例(如图片、PDF等)
2018/03/07 HTML / CSS
一张图片能隐含千言万语之隐藏你的程序代码
2012/12/13 HTML / CSS
HMV日本官网:全球知名的音乐、DVD和电脑游戏零售巨头
2016/08/13 全球购物
护理学毕业生自荐信
2013/10/02 职场文书
会计学专业学生的求职信范文
2014/01/27 职场文书
质量负责人任命书
2014/06/06 职场文书
驾驶员安全责任书
2014/07/22 职场文书
争先创优活动总结
2014/08/27 职场文书
学习保证书100字
2015/02/26 职场文书
暂停营业通知
2015/04/25 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
小学信息技术教学反思
2016/02/16 职场文书
分享几种python 变量合并方法
2022/03/20 Python
利用uni-app生成微信小程序的踩坑记录
2022/04/05 Javascript