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之从if开始语句的征程
Sep 14 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
pandas DataFrame 根据多列的值做判断,生成新的列值实例
May 18 Python
python利用thrift服务读取hbase数据的方法
Dec 27 Python
在python中利用最小二乘拟合二次抛物线函数的方法
Dec 29 Python
在Django中实现添加user到group并查看
Nov 18 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Python实现桌面翻译工具【新手必学】
Feb 12 Python
Python之Django自动实现html代码(下拉框,数据选择)
Mar 13 Python
Java ExcutorService优雅关闭方式解析
May 30 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
Jun 03 Python
python 用pandas实现数据透视表功能
Dec 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 超链接 抓取实现代码
2009/06/29 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
nodeJS服务器的创建和重新启动的实现方法
2018/05/12 NodeJs
jQuery使用$.extend(true,object1, object2);实现深拷贝对象的方法分析
2019/03/06 jQuery
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
微信小程序前端promise封装代码实例
2019/08/24 Javascript
vuecli3.x中轻松4步带你使用tinymce的步骤
2020/06/25 Javascript
[02:55]含熏伴清风,风行者至宝、屠夫身心及典藏宝瓶二展示
2020/09/08 DOTA
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
Python 正则表达式操作指南
2009/05/04 Python
python机器学习理论与实战(二)决策树
2018/01/19 Python
python多线程之事件Event的使用详解
2018/04/27 Python
10个Python小技巧你值得拥有
2018/09/29 Python
python爬虫爬取微博评论案例详解
2019/03/27 Python
Django自定义用户登录认证示例代码
2019/06/30 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
python实现桌面托盘气泡提示
2019/07/29 Python
django中上传图片分页三级联动效果的实现代码
2019/08/30 Python
python 动态调用函数实例解析
2019/10/21 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
在Python中利用pickle保存变量的实例
2019/12/30 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
英国户外装备和冒险服装零售商:alloutdoor
2018/01/30 全球购物
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
Pedro官网:新加坡时尚品牌
2019/08/27 全球购物
俄罗斯隐形眼镜和眼镜在线商店:Cronos
2020/06/02 全球购物
中科软测试工程师面试题
2012/06/16 面试题
写给女生的道歉信
2014/01/08 职场文书
教育技术学专业职业规划书
2014/03/03 职场文书
食堂卫生管理制度
2015/08/04 职场文书
电频谱管理的原则是什么
2022/02/18 无线电
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers
jdbc中自带MySQL 连接池实践示例
2022/07/23 MySQL