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下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
Python算法应用实战之栈详解
Feb 04 Python
Python分治法定义与应用实例详解
Jul 28 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
详解python 中in 的 用法
Dec 12 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
Feb 25 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
Django-imagekit的使用详解
Jul 06 Python
Python3使用 GitLab API 进行批量合并分支
Oct 15 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
python批量更改目录名/文件名的方法
Apr 18 Python
Pytorch 如何实现LSTM时间序列预测
May 17 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 adodb操作mysql数据库
2009/03/19 PHP
php echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
PHP中的正则表达式函数介绍
2012/02/27 PHP
php中sql注入漏洞示例 sql注入漏洞修复
2014/01/24 PHP
php使用parse_url和parse_str解析URL
2015/02/22 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
浅析PHP7 的垃圾回收机制
2019/09/06 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
用js实现in_array的方法
2013/11/05 Javascript
使用JS CSS去除IE链接虚线框的三种方法
2013/11/14 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
2016/09/23 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
详解vue-router 路由元信息
2017/09/13 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
2019/12/17 Javascript
详解Python的循环结构知识点
2019/05/20 Python
浅谈Django中view对数据库的调用方法
2019/07/18 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
英国蜡烛、蜡烛配件和家居香氛购买网站:Yankee Candle
2018/12/12 全球购物
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
高中生学习生活的自我评价
2013/11/27 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
年终总结会议主持词
2014/03/17 职场文书
对祖国的寄语大全
2014/04/11 职场文书
保密工作整改报告
2014/11/06 职场文书
《黄道婆》教学反思
2016/02/22 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android