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实现全角半角转换的方法
Aug 18 Python
Python入门之三角函数tan()函数实例详解
Nov 08 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
python实现一个简单的ping工具方法
Jan 31 Python
Python上下文管理器全实例详解
Nov 12 Python
Python之——生成动态路由轨迹图的实例
Nov 22 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
Python连接Mysql进行增删改查的示例代码
Aug 03 Python
Python 可视化神器Plotly详解
Dec 26 Python
python中pdb模块实例用法
Jan 15 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
Feb 20 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学习 计数器实例代码
2008/06/15 PHP
Apache中php.ini的设置方法
2013/02/28 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
PHP对象递归引用造成内存泄漏分析
2014/08/28 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
javascript 必知必会之closure
2009/09/21 Javascript
window.requestAnimationFrame是什么意思,怎么用
2013/01/13 Javascript
JavaScript实现两个Table固定表头根据页面大小自行调整
2014/01/03 Javascript
js实现身份证号码验证的简单实例
2014/02/19 Javascript
javascript运算符语法全面概述
2016/07/14 Javascript
利用python分析access日志的方法
2016/10/26 Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
2017/03/03 Javascript
详解vuejs几种不同组件(页面)间传值的方式
2017/06/01 Javascript
jQuery EasyUI结合zTree树形结构制作web页面
2017/09/01 jQuery
JavaScript如何获取到导航条中HTTP信息
2017/10/10 Javascript
vue2组件之select2调用的示例代码
2017/10/12 Javascript
Vue中使用的EventBus有生命周期
2018/07/12 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
vue实现购物车列表
2020/06/30 Javascript
python使用multiprocessing模块实现带回调函数的异步调用方法
2015/04/18 Python
Python数据结构之单链表详解
2017/09/12 Python
python中列表和元组的区别
2017/12/18 Python
用python实现刷点击率的示例代码
2019/02/21 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
Python3中的tuple函数知识点讲解
2021/01/03 Python
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
端口镜像是怎么实现的
2014/03/25 面试题
大学生志愿者感言
2014/01/15 职场文书
课外活动总结范文
2014/07/09 职场文书
2015年“世界无车日”活动方案
2015/05/06 职场文书
博物馆观后感
2015/06/05 职场文书
Python anaconda安装库命令详解
2021/10/16 Python
Python卷积神经网络图片分类框架详解分析
2021/11/07 Python