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 相关文章推荐
详解JavaScript编程中的window与window.screen对象
Oct 26 Python
浅谈python中的面向对象和类的基本语法
Jun 13 Python
pycharm远程开发项目的实现步骤
Jan 20 Python
从列表或字典创建Pandas的DataFrame对象的方法
Jul 06 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
django 数据库连接模块解析及简单长连接改造方法
Aug 29 Python
python通过链接抓取网站详解
Nov 20 Python
Python3 A*寻路算法实现方式
Dec 24 Python
python如何实现复制目录到指定目录
Feb 13 Python
python实现同一局域网下传输图片
Mar 20 Python
Python中有几个关键字
Jun 04 Python
python实例化对象的具体方法
Jun 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
我的论坛源代码(三)
2006/10/09 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
jQuery ajax+PHP实现的级联下拉列表框功能示例
2019/02/12 PHP
JavaScript 学习笔记(十一)
2010/01/19 Javascript
jQuery之浮动窗口实现代码(两种方法)
2010/09/08 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
javascript常用对话框小集
2013/09/13 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
AngularJs Dependency Injection(DI,依赖注入)
2016/09/02 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
AngularJS实现图片上传和预览功能的方法分析
2017/11/08 Javascript
iview在vue-cli3如何按需加载的方法
2018/10/31 Javascript
JS document文档的简单操作完整示例
2020/01/13 Javascript
VueX模块的具体使用(小白教程)
2020/06/05 Javascript
在服务器端实现无间断部署Python应用的教程
2015/04/16 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
全面了解python中的类,对象,方法,属性
2016/09/11 Python
Python 装饰器使用详解
2017/07/29 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
Python发展简史 Python来历
2019/05/14 Python
Python依赖包整体迁移方法详解
2019/08/15 Python
python 通过视频url获取视频的宽高方式
2019/12/10 Python
python3的UnicodeDecodeError解决方法
2019/12/20 Python
提升python处理速度原理及方法实例
2019/12/25 Python
python中安装django模块的方法
2020/03/12 Python
keras 两种训练模型方式详解fit和fit_generator(节省内存)
2020/07/03 Python
Python+OpenCV图像处理—— 色彩空间转换
2020/10/22 Python
HTML5制作3D爱心动画教程 献给女友浪漫的礼物
2014/11/05 HTML / CSS
一组SQL面试题
2016/02/15 面试题
高级护理实习生自荐信
2013/09/28 职场文书
成功的酒店创业计划书
2013/12/27 职场文书
中文师范生自荐信
2014/01/30 职场文书
人力资源总监工作说明
2014/03/03 职场文书
巴西世界杯32强口号
2014/06/05 职场文书
工厂门卫的岗位职责
2014/07/27 职场文书
Grafana可视化监控系统结合SpringBoot使用
2022/04/19 Redis