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中的左斜杠、右斜杠(正斜杠和反斜杠)
Aug 30 Python
Python自定义主从分布式架构实例分析
Sep 19 Python
python实现单向链表详解
Feb 08 Python
python如何将图片转换为字符图片
Aug 19 Python
Python基于datetime或time模块分别获取当前时间戳的方法实例
Feb 19 Python
Win10环境python3.7安装dlib模块趟过的坑
Aug 01 Python
Django用户认证系统 Web请求中的认证解析
Aug 02 Python
python Kmeans算法原理深入解析
Aug 23 Python
使用OpenCV circle函数图像上画圆的示例代码
Dec 27 Python
python 基于UDP协议套接字通信的实现
Jan 22 Python
python数字类型和占位符详情
Mar 13 Python
python 判断字符串当中是否包含字符(str.contain)
Jun 01 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
打造计数器DIY三步曲(下)
2006/10/09 PHP
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP中array_slice函数用法实例详解
2014/11/25 PHP
PHP操作FTP类 (上传、下载、移动、创建等)
2016/03/31 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
jquery 将disabled的元素置为enabled的三种方法
2009/07/25 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
JS数组的遍历方式for循环与for...in
2014/07/31 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
原生js实现移动开发轮播图、相册滑动特效
2015/04/17 Javascript
JavaScript的jQuery库中ready方法的学习教程
2015/08/14 Javascript
Bootstrap每天必学之下拉菜单
2015/11/25 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
在IE8上JS实现combobox支持拼音检索功能
2016/05/23 Javascript
JS实现添加,替换,删除节点元素的方法
2016/06/30 Javascript
js带闹铃功能的倒计时代码
2016/09/29 Javascript
React+Redux实现简单的待办事项列表ToDoList
2019/09/29 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
openlayers4实现点动态扩散
2020/08/17 Javascript
JS如何实现在弹出窗口中加载页面
2020/12/03 Javascript
Python中使用不同编码读写txt文件详解
2015/05/28 Python
Python实现的redis分布式锁功能示例
2018/05/29 Python
Django框架模板的使用方法示例
2019/05/25 Python
Python包资源下载路径报404解决方案
2020/11/05 Python
python 实现超级玛丽游戏
2020/11/25 Python
以设计师精品品质提供快速时尚:PopJulia
2018/01/09 全球购物
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
传媒专业推荐信范文
2013/11/23 职场文书
喷漆工的岗位职责
2014/03/17 职场文书
小学运动会报道稿
2014/10/04 职场文书
教师作风整顿个人剖析材料
2014/10/10 职场文书
发票退票证明
2015/06/24 职场文书
在python中实现导入一个需要传参的模块
2021/05/12 Python
Java各种比较对象的方式的对比总结
2021/06/20 Java/Android
MySQL中varchar和char类型的区别
2021/11/17 MySQL