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 相关文章推荐
Win7下搭建python开发环境图文教程(安装Python、pip、解释器)
May 17 Python
python计算两个地址之间的距离方法
Jun 09 Python
Python基于pandas实现json格式转换成dataframe的方法
Jun 22 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
详解python函数的闭包问题(内部函数与外部函数详述)
May 17 Python
对PyQt5中树结构的实现方法详解
Jun 17 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
Python实现语音识别和语音合成功能
Sep 20 Python
使用python制作游戏下载进度条的代码(程序说明见注释)
Oct 24 Python
python爬虫实现POST request payload形式的请求
Apr 30 Python
深度学习tensorflow基础mnist
Apr 14 Python
Python万能模板案例之matplotlib绘制甘特图
Apr 13 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
乐信RP2100的电路分析和打磨
2021/03/02 无线电
php获取地址栏信息的代码
2008/10/08 PHP
PHP中file_exists()判断中文文件名无效的解决方法
2014/11/12 PHP
php中strtotime函数性能分析
2016/11/20 PHP
Ext JS添加子组件的误区探讨
2013/06/28 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
2013/12/04 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
jQuery简单实现图片预加载
2015/04/20 Javascript
jquery验证邮箱格式是否正确实例讲解
2015/11/16 Javascript
把json格式的字符串转换成javascript对象或数组的方法总结
2016/11/03 Javascript
简单实现Bootstrap标签页
2020/08/09 Javascript
原生js实现焦点轮播图效果
2017/01/12 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
vue.js 获取select中的value实例
2018/03/01 Javascript
原生JS forEach()和map()遍历的区别、兼容写法及jQuery $.each、$.map遍历操作
2019/02/27 jQuery
vueScroll实现移动端下拉刷新、上拉加载
2019/03/22 Javascript
详解JavaScript中的强制类型转换
2019/04/15 Javascript
微信小程序仿抖音短视频切换效果的实例代码
2020/06/24 Javascript
python爬取网站数据保存使用的方法
2013/11/20 Python
解决django FileFIELD的编码问题
2020/03/30 Python
Python grpc超时机制代码示例
2020/09/14 Python
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
全球精选男装和家居用品:Article
2020/04/13 全球购物
Unix如何在一行中运行多个命令
2015/05/29 面试题
水务局局长岗位职责
2013/11/28 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
给学校的建议书
2014/03/12 职场文书
学生无故旷课检讨书
2014/09/20 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
运动会新闻稿
2015/07/17 职场文书
校园运动会广播稿
2015/08/19 职场文书
青年教师听课心得体会
2016/01/15 职场文书
Vue监视数据的原理详解
2022/02/24 Vue.js