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程序设计入门(3)数组的使用
Jun 16 Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 Python
python关键字and和or用法实例
May 28 Python
python3读取excel文件只提取某些行某些列的值方法
Jul 10 Python
pandas筛选某列出现编码错误的解决方法
Nov 07 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
Django使用Channels实现WebSocket的方法
Jul 28 Python
使用Python为中秋节绘制一块美味的月饼
Sep 11 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
Apr 27 Python
Python字符串格式化f-string多种功能实现
May 07 Python
使用pandas生成/读取csv文件的方法实例
Jul 09 Python
Python几种酷炫的进度条的方式
Apr 11 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
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php中使用cookie来保存用户登录信息的实现代码
2012/03/08 PHP
优化PHP代码技巧的小结
2013/06/02 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP错误处理函数
2016/04/03 PHP
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
浏览器打开层自动缓慢展开收缩实例代码
2013/07/04 Javascript
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
理解javascript定时器中的单线程
2016/02/23 Javascript
百度地图给map添加右键菜单(判断是否为marker)
2016/03/04 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
2016/12/02 Javascript
vue二级路由设置方法
2018/02/09 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
vue动态渲染svg、添加点击事件的实现
2020/03/13 Javascript
vue实现图片上传功能
2020/05/28 Javascript
Python实现从百度API获取天气的方法
2015/03/11 Python
python插入排序算法实例分析
2015/07/03 Python
Python实现批量修改文件名实例
2015/07/08 Python
Python 列表排序方法reverse、sort、sorted详解
2016/01/22 Python
用Python设计一个经典小游戏
2017/05/15 Python
Python面向对象之接口、抽象类与多态详解
2018/08/27 Python
Python字符串的全排列算法实例详解
2019/01/07 Python
Django Form常用功能及代码示例
2020/10/13 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
详解numpy1.19.4与python3.9版本冲突解决
2020/12/15 Python
一款纯css3制作的2015年元旦雪人动画特效教程
2014/12/29 HTML / CSS
加大码胸罩、内裤和服装:Just My Size
2019/03/21 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
得到Class的三个过程是什么
2012/08/10 面试题
管理建议书范文
2014/05/13 职场文书
实验心得体会
2014/09/05 职场文书
有子女的离婚协议书怎么写(范本)
2014/09/29 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
干部培训简讯
2015/07/20 职场文书