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的time模块中的常用方法整理
Jun 18 Python
实例解析Python设计模式编程之桥接模式的运用
Mar 02 Python
Python 多核并行计算的示例代码
Nov 07 Python
解决python中遇到字典里key值为None的情况,取不出来的问题
Oct 17 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
python的一些加密方法及python 加密模块
Jul 11 Python
django做form表单的数据验证过程详解
Jul 26 Python
python批量修改ssh密码的实现
Aug 08 Python
python实现飞船游戏的纵向移动
Apr 24 Python
学python爬虫能做什么
Jul 29 Python
Django migrate报错的解决方案
May 20 Python
再也不用花钱买漫画!Python爬取某漫画的脚本及源码
Jun 09 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
js 巧妙去除数组中的重复项
2010/01/25 Javascript
jQuery+css+html实现页面遮罩弹出框
2013/03/21 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
js实现图片在未加载完成前显示加载中字样
2014/09/03 Javascript
轻松创建nodejs服务器(10):处理上传图片
2014/12/18 NodeJs
jQuery中width()方法用法实例
2014/12/24 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
AngularJS 整理一些优化的小技巧
2016/08/18 Javascript
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
jQuery实现的form转json经典示例
2017/10/10 jQuery
react实现菜单权限控制的方法
2017/12/11 Javascript
Vue写一个简单的倒计时按钮功能
2018/04/20 Javascript
从零开始学习搭建React脚手架项目
2018/08/23 Javascript
mockjs+vue页面直接展示数据的方法
2018/12/19 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
vue中使用带隐藏文本信息的图片、图片水印的方法
2020/04/24 Javascript
JavaScript JSON使用原理及注意事项
2020/07/30 Javascript
跟老齐学Python之一个免费的实验室
2014/09/14 Python
Python实现进程同步和通信的方法
2018/01/02 Python
详解python中asyncio模块
2018/03/03 Python
python实现随机漫步方法和原理
2019/06/10 Python
FFrpc python客户端lib使用解析
2019/08/24 Python
python使用 request 发送表单数据操作示例
2019/09/25 Python
python 动态渲染 mysql 配置文件的示例
2020/11/20 Python
英国领先的电子、技术和办公用品购物网站:Ebuyer
2018/04/04 全球购物
大三自我鉴定范文
2013/10/05 职场文书
数控专业大学毕业生职业规划范文
2014/02/06 职场文书
药剂专业自荐书
2014/06/20 职场文书
奉献爱心演讲稿
2014/09/04 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
工伤私了协议书范本
2014/11/24 职场文书
演讲开场白和结束语
2015/05/29 职场文书
小学生暑假安全公约
2015/07/14 职场文书
党性教育心得体会(共6篇)
2016/01/21 职场文书
导游词之黄果树瀑布
2019/09/20 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang