django框架model orM使用字典作为参数,保存数据的方法分析
作者:轻舞肥羊 发布时间:2021-03-11 00:18:30
标签:django,model,orM,字典
本文实例讲述了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程序设计有所帮助。
来源:http://www.yihaomen.com/article/python/342.htm
0
投稿
猜你喜欢
- 使用 IE8 时发现其原生的 JSON 解析器存在 Bug,让我们先用 IE8 打开 DEMO 页面体验下。http://lab.grace
- 如何用组件实现自动发送电子邮件?我想做一个能够自动发送电子邮件的程序,该如何做? 这就要用到w3 upl
- 秦歌这篇文章总结得很不错,俺挑刺来啦:1. 优先级的描述不严谨,有 !important 时,网页样式可以覆盖用户自定义样式。用户!impo
- 所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。mkdir()方法可以使用os
- 阅读上一篇:交互设计模式(二)-Pagination(分页,标记页数) Tagging(标签)问题摘要用户往往想通过流行或最详尽的主题来浏览
- 头疼的挂马事件申请了个免费空间弄了个小站空间还可以二年多了挺稳定的只是从今年年初开始网页老莫名奇妙的被人挂马仔细检查了网站 不存在什么漏洞应
- mysql -uusername -pyourpassword yourdatabasename < c:\sqlfile.sql其中
- 思路:创建文件时,先检查是否有同名文件(使用os.path.isfile),如果有,则在文件名后加上编号n来创建。关键点:1. 使用os.p
- 本文实例讲述了thinkPHP框架实现类似java过滤器的简单方法。分享给大家供大家参考,具体如下:写java web代码的时候,可以定义过
- 刚刚有人问我二年前写的那个小三角的效果还能作出什么样的效果,我正在看电视,画面上出现了这样一个小灯笼,于是,我就说,可以作个小灯笼玩玩。于是
- 以下是几个文件操作过程,创建文件,删除文件,修改文件:
- Smarty Smarty的特点是将模板编译成PHP脚本,然后执行这些脚本。很快,非常灵活。 Heyes Template&nbs
- 〝 古人学问遗无力,少壮功夫老始成 〞python之tkinter库弹窗messagebox,常码字不易,出精品更难,没有特别幸运,那么请先
- 英文的文档在这里,详细全面,本文仅为自己的学习笔记,只是试图通过转述加深自己的学习,不详细不全面。由于浏览器之间的差异,所以在JS中监听事件
- 由于卷积神经网络的设计是用于探索图像数据,本节我们将以图像为例。互相关运算严格来说,卷积层是个错误的叫法,因为它所表达的运算其实是互相关运算
- python 中有6大标准类型:数字(Number)字符串(String)列表(List)元组(Tumple)集合(Set)字典(Dicti
- microtime() 函数返回当前 Unix 时间戳的微秒数。用于检测程序执行时间的函数,也是PHP内置的时间函数之一,在PHP中可以用于
- 最近项目使用c++操作Python脚本,选用boost.python库。在window下编译安装很顺利,但是在Linux下一直编译不通过,总
- 代码如下: <% Dim oConn, ors, aRows Dim i,j Set oConn=Server.CreateObjec
- 推荐算法在互联网行业的应用非常广泛,今日头条、美团点评等都有个性化推荐,推荐算法抽象来讲,是一种对于内容满意度的拟合函数,涉及到用户特征和内