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 相关文章推荐
多线程爬虫批量下载pcgame图片url 保存为xml的实现代码
Jan 17 Python
通过Python使用saltstack生成服务器资产清单
Mar 01 Python
利用Python如何生成便签图片详解
Jul 09 Python
使用Python实现在Windows下安装Django
Oct 17 Python
Python中的 enum 模块源码详析
Jan 09 Python
python高斯分布概率密度函数的使用详解
Jul 10 Python
Python openpyxl模块原理及用法解析
Jan 19 Python
用python给csv里的数据排序的具体代码
Jul 17 Python
python装饰器三种装饰模式的简单分析
Sep 04 Python
Python Pandas数据分析工具用法实例
Nov 05 Python
使用django自带的user做外键的方法
Nov 30 Python
利用Python读取微信朋友圈的多种方法总结
Aug 23 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
UCenter中的一个可逆加密函数authcode函数代码
2010/07/20 PHP
浅析Apache中RewriteCond规则参数的详细介绍
2013/06/30 PHP
zend framework文件上传功能实例代码
2013/12/25 PHP
php中curl、fsocket、file_get_content三个函数的使用比较
2014/05/09 PHP
PHP遍历目录并返回统计目录大小
2014/06/09 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
PHP程序员必须清楚的问题汇总
2014/12/18 PHP
php中目录操作opendir()、readdir()及scandir()用法示例
2019/06/08 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
Javascript Jquery 遍历Json的实现代码
2010/03/31 Javascript
25个好玩的JavaScript小游戏分享
2011/04/22 Javascript
jQuery点缩略图弹出层显示大图片
2015/02/13 Javascript
JS制作简单的三级联动
2015/03/18 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
jQuery插件制作的实例教程
2016/05/16 Javascript
JavaScript实现图像模糊化的方法实例
2017/01/15 Javascript
JS组件系列之MVVM组件构建自己的Vue组件
2017/04/28 Javascript
vue2.0 与 bootstrap datetimepicker的结合使用实例
2017/05/22 Javascript
详谈表单重复提交的三种情况及解决方法
2017/08/16 Javascript
python字符串连接方法分析
2016/04/12 Python
Python实现获取磁盘剩余空间的2种方法
2017/06/07 Python
python利用urllib和urllib2访问http的GET/POST详解
2017/09/27 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
django的ORM操作 删除和编辑实现详解
2019/07/24 Python
对python 树状嵌套结构的实现思路详解
2019/08/09 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
科尔士百货公司官网:Kohl’s
2016/07/11 全球购物
印尼综合在线预订网站:Tiket.com(机票、酒店、火车、租车和娱乐)
2018/10/11 全球购物
双十佳事迹材料
2014/01/29 职场文书
《赵州桥》教学反思
2014/02/17 职场文书
大学生工作求职信
2014/06/23 职场文书
2014年入党积极分子学习三中全会思想汇报
2014/09/13 职场文书
关于拾金不昧的感谢信
2015/01/21 职场文书
教研活动主持词
2015/07/03 职场文书
董事长开业致辞
2015/07/29 职场文书
使用Html+Css实现简易导航栏功能(导航栏遇到鼠标切换背景颜色)
2021/04/07 HTML / CSS