Django中create和save方法的不同


Posted in Python onAugust 13, 2019

前言

Django的模型(Model)的本质是类,并不是一个具体的对象(Object)。当你设计好模型后,你就可以对Model进行实例化从而创建一个一个具体的对象。Django对于创建对象提供了2种不同的save与create方法,我们来仔细分析下这两种方式有什么不同。

我们来先看看下面这个例子。我们已经设计好了一个Person的模型(如下)。

from django.db import models
 
class Person(models.Model):
 name = models.CharField(max_length=128)
 
 def __str__(self):
  return self.name

用save方法创建对象

用save方法创建一个名叫lucifer的具体对象,我们可以这么做。记住你只有用了save()方法后,Django才会将这个对象的信息存储到数据库中。

lucifer= Person(name="lucifer")
lucifer.save()

用create方法创建对象

正因为用save方法创建对象有2步,而且编程人员容易忘记加上save(),Django提供了一个更便捷的create方法,如下。如果你使用create方法,无需再加上save()。create方法不仅创建了新的对象,而且直接将信息存储到数据库里。

lucifer = Person.objects.create(name="lucifer ")

User自带的create_user方法

如果你要Auth自带的User模型创建新对象,你需要使用create_user方法,而不是create方法,如下所示。create_user方法很有用,自动会给密码加Hash。

user1 = User.objects.create_user(username=username, username=password)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
跨平台python异步回调机制实现和使用方法
Nov 26 Python
详解用Python处理HTML转义字符的5种方式
Dec 27 Python
tensorflow构建BP神经网络的方法
Mar 12 Python
django 开发忘记密码通过邮箱找回功能示例
Apr 17 Python
Django学习教程之静态文件的调用详解
May 08 Python
python tornado微信开发入门代码
Aug 24 Python
python实现微信小程序自动回复
Sep 10 Python
浅谈Python的list中的选取范围
Nov 12 Python
Python实现的逻辑回归算法示例【附测试csv文件下载】
Dec 28 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
Feb 21 Python
如何使用python传入不确定个数参数
Feb 18 Python
python ImageDraw类实现几何图形的绘制与文字的绘制
Feb 26 Python
Python学习笔记之函数的定义和作用域实例详解
Aug 13 #Python
Python爬取智联招聘数据分析师岗位相关信息的方法
Aug 13 #Python
python基于json文件实现的gearman任务自动重启代码实例
Aug 13 #Python
Python 写入训练日志文件并控制台输出解析
Aug 13 #Python
基于MATLAB和Python实现MFCC特征参数提取
Aug 13 #Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 #Python
Django项目中实现使用qq第三方登录功能
Aug 13 #Python
You might like
WindowsXP中快速配置Apache+PHP5+Mysql
2008/06/05 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
2016/05/20 PHP
总结一些PHP中好用但又容易忽略的小知识
2017/06/02 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
Prototype使用指南之ajax
2007/01/10 Javascript
JavaScript Tips 使用DocumentFragment加快DOM渲染速度
2010/06/28 Javascript
jQuery循环遍历子节点并获取值的方法
2016/04/14 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
JS操作JSON方法总结(推荐)
2016/06/14 Javascript
AngularJs directive详解及示例代码
2016/09/01 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
angular.js指令中transclude选项及ng-transclude指令详解
2017/05/24 Javascript
浅谈 vue 中的 watcher
2017/12/04 Javascript
vue.js实现带日期星期的数字时钟功能示例
2018/08/28 Javascript
在Vant的基础上封装下拉日期控件的代码示例
2018/12/05 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
[02:05]2014DOTA2西雅图邀请赛 老队长全明星大猜想谁不服就按进显示器
2014/07/08 DOTA
[02:51]2014DOTA2国际邀请赛 IG战队官方纪录片
2014/07/21 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
python中四舍五入的正确打开方式
2021/01/18 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
HTML5是什么 HTML5是什么意思 HTML5简介
2012/10/26 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
请说出你所知道的线程同步的方法
2013/04/19 面试题
土木工程毕业生自荐信
2013/11/12 职场文书
同学聚会欢迎辞
2014/01/14 职场文书
法人代表授权委托书
2014/04/08 职场文书
国际经济贸易专业自荐信
2014/06/13 职场文书
2015年监理工作总结范文
2015/04/07 职场文书
党员证明信
2015/06/19 职场文书
2019年亲子运动会口号
2019/10/11 职场文书
Jsonp劫持学习
2021/04/01 PHP
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python
Python极值整数的边界探讨分析
2021/09/15 Python