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 相关文章推荐
c++生成dll使用python调用dll的方法
Jan 20 Python
Python编程之变量赋值操作实例分析
Jul 24 Python
python+django+sql学生信息管理后台开发
Jan 11 Python
python实现俄罗斯方块游戏
Mar 25 Python
Python正则表达式和re库知识点总结
Feb 11 Python
Python两个字典键同值相加的几种方法
Mar 05 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
Python 识别12306图片验证码物品的实现示例
Jan 20 Python
Python TKinter如何自动关闭主窗口
Feb 26 Python
python3.6使用SMTP协议发送邮件
May 20 Python
python Yaml、Json、Dict之间的转化
Oct 19 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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
Laravel 5框架学习之Blade 简介
2015/04/08 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
Symfony2框架学习笔记之HTTP Cache用法详解
2016/03/18 PHP
php简单的上传类分享
2016/05/15 PHP
windows 2008r2+php5.6.28环境搭建详细过程
2019/06/18 PHP
Thinkphp5 自定义上传文件名的实现方法
2019/07/23 PHP
PHP递归统计系统中代码行数
2019/09/19 PHP
javascript+css 网页每次加载不同样式的实现方法
2009/12/27 Javascript
对比分析json及XML
2014/11/28 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
jQuery源码分析之Callbacks详解
2015/03/13 Javascript
javascript实现下班倒计时效果的方法(可桌面通知)
2015/07/10 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
浅谈Nodejs中的作用域问题
2016/12/26 NodeJs
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
select下拉框插件jquery.editable-select详解
2017/01/22 Javascript
jQuery插件HighCharts绘制简单2D柱状图效果示例【附demo源码】
2017/03/21 jQuery
vue中用H5实现文件上传的方法实例代码
2017/05/27 Javascript
Angularjs中数据绑定的实例详解
2017/08/25 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
JavaScript 监听组合按键思路及代码实现
2020/07/28 Javascript
解决vue项目input输入框双向绑定数据不实时生效问题
2020/08/05 Javascript
Vue elementui字体图标显示问题解决方案
2020/08/18 Javascript
[03:22]DOTA2超级联赛专访单车:找到属于自己的英雄
2013/06/08 DOTA
Python自动连接ssh的方法
2015/03/07 Python
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
Python eval的常见错误封装及利用原理详解
2019/03/26 Python
python求前n个阶乘的和实例
2020/04/02 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
CSS3下的渐变文字效果实现示例
2018/03/02 HTML / CSS
田径运动会广播稿
2015/08/19 职场文书
2019年年中工作总结讲话稿模板
2019/03/25 职场文书
Python答题卡识别并给出分数的实现代码
2021/06/22 Python