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使用urllib2获取网络资源实例讲解
Dec 02 Python
python执行外部程序的常用方法小结
Mar 21 Python
python实现爬虫下载美女图片
Jul 14 Python
Python中的多行注释文档编写风格汇总
Jun 16 Python
python简单商城购物车实例代码
Mar 15 Python
python实现彩色图转换成灰度图
Jan 15 Python
python实现PID算法及测试的例子
Aug 08 Python
python实现简易淘宝购物
Nov 22 Python
在Sublime Editor中配置Python环境的详细教程
May 03 Python
Python实现自动整理文件的脚本
Dec 17 Python
Python新建项目自动添加介绍和utf-8编码的方法
Dec 26 Python
python实现学生信息管理系统源码
Feb 22 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
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
JQuery 图片延迟加载并等比缩放插件
2009/11/09 Javascript
JavaScript 数组循环引起的思考
2010/01/01 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
js中的replace方法使用介绍
2013/10/28 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
淘宝网提供的国内NPM镜像简介和使用方法
2014/04/17 Javascript
win7下安装配置node.js+express开发环境
2015/12/06 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
javascript之IE版本检测超简单方法
2016/08/20 Javascript
JavaScript中offsetWidth的bug及解决方法
2017/05/17 Javascript
BootStrap daterangepicker 双日历控件
2017/06/02 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
jQuery 改变P标签文本值方法
2018/02/24 jQuery
深入理解Node module模块
2018/03/26 Javascript
Vue 进阶之路(三)
2019/04/18 Javascript
extjs4图表绘制之折线图实现方法分析
2020/03/06 Javascript
[02:21]DOTA2英雄基础教程 蝙蝠骑士
2013/12/16 DOTA
python中hashlib模块用法示例
2017/10/30 Python
selenium+python 去除启动的黑色cmd窗口方法
2018/05/22 Python
对python 命令的-u参数详解
2018/12/03 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
pytorch 查看cuda 版本方式
2020/06/23 Python
Tensorflow tensor 数学运算和逻辑运算方式
2020/06/30 Python
多个版本的python共存时使用pip的正确做法
2020/10/26 Python
实例讲解利用HTML5 Canvas API操作图形旋转的方法
2016/03/22 HTML / CSS
美国在线宠物用品商店:Entirely Pets
2017/01/01 全球购物
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
大学考试作弊检讨书
2014/01/30 职场文书
标准单位租车协议书
2014/09/23 职场文书
党建工作汇报材料
2014/12/24 职场文书
2016小学教师读书心得体会
2016/01/13 职场文书
《富饶的西沙群岛》教学反思
2016/02/16 职场文书
python实现简易名片管理系统
2021/04/11 Python
Python上下文管理器Content Manager
2021/06/26 Python