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中使用动态变量名的方法
May 06 Python
python统计字符串中指定字符出现次数的方法
Apr 04 Python
对于Python中RawString的理解介绍
Jul 07 Python
Python实现抓取网页生成Excel文件的方法示例
Aug 05 Python
Python实现的视频播放器功能完整示例
Feb 01 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python实现祝福弹窗效果
Apr 07 Python
python 读取串口数据的示例
Nov 09 Python
python爬取抖音视频的实例分析
Jan 19 Python
Django操作cookie的实现
May 26 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 5.0 Pear安装方法
2006/12/06 PHP
优化PHP代码的53条建议
2008/03/27 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP实现基于3DES算法加密解密字符串示例
2018/08/24 PHP
PHP获取星期几的常用方法小结
2018/12/18 PHP
js 创建快捷方式的代码(fso)
2010/11/19 Javascript
js操作textarea 常用方法总结
2012/12/03 Javascript
jQuery中setTimeout的几种使用方法小结
2013/04/07 Javascript
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
禁用Enter键表单自动提交实现代码
2014/05/22 Javascript
使用Raygun对Node.js应用进行错误处理的方法
2015/06/23 Javascript
JavaScript优化专题之Loading and Execution加载和运行
2016/01/20 Javascript
jQuery flip插件实现的翻牌效果示例【附demo源码下载】
2016/09/20 Javascript
整理关于Bootstrap排版的慕课笔记
2017/03/29 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
React-router v4 路由配置方法小结
2017/08/08 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
React组件内事件传参实现tab切换的示例代码
2018/07/04 Javascript
vue自定义全局共用函数详解
2018/09/18 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
你准备好迎接vue3.0了吗
2020/04/28 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
Vue3配置axios跨域实现过程解析
2020/11/25 Vue.js
[17:45]DOTA2 HEROES教学视频教你分分钟做大人-军团指挥官
2014/06/11 DOTA
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
在Python中使用HTML模版的教程
2015/04/29 Python
Python实现购物程序思路及代码
2017/07/24 Python
python生成圆形图片的方法
2020/03/25 Python
python实现给scatter设置颜色渐变条colorbar的方法
2018/12/13 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
python基础 range的用法解析
2019/08/23 Python
python3 写一个WAV音频文件播放器的代码
2019/09/27 Python
预备党员公开承诺书
2014/05/28 职场文书
狼牙山五壮士观后感
2015/06/09 职场文书