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 相关文章推荐
Pyhton中防止SQL注入的方法
Feb 05 Python
Python中的匿名函数使用简介
Apr 27 Python
浅谈Python中函数的参数传递
Jun 21 Python
Python3实现的字典遍历操作详解
Apr 18 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
django认证系统 Authentication使用详解
Jul 22 Python
python十进制转二进制的详解
Feb 07 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
Python常用数字处理基本操作汇总
Sep 10 Python
弄清Pytorch显存的分配机制
Dec 10 Python
Django开发RESTful API实现增删改查(入门级)
May 10 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
使用php4加速网络传输
2006/10/09 PHP
PHP验证码类ValidateCode解析
2017/01/07 PHP
laravel自定义分页效果
2017/07/23 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
网页前台通过js非法字符过滤代码(骂人的话等等)
2010/05/26 Javascript
一个简单的js动画效果代码
2010/07/20 Javascript
全面理解面向对象的 JavaScript(来自ibm)
2013/11/10 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
详解在vue-cli中引用jQuery、bootstrap以及使用sass、less编写css
2017/11/08 jQuery
Angular实现的内置过滤器orderBy排序与模糊查询功能示例
2017/12/29 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
js实现拾色器插件(ColorPicker)
2020/05/21 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
[01:06]DOTA2隆重推出2016冬季勇士令状 内含上海特级锦标赛互动指南
2016/02/17 DOTA
python访问mysql数据库的实现方法(2则示例)
2016/01/06 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
python监控文件并且发送告警邮件
2018/06/21 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
Python Django实现layui风格+django分页功能的例子
2019/08/29 Python
python 协程 gevent原理与用法分析
2019/11/22 Python
使用pyqt 实现重复打开多个相同界面
2019/12/13 Python
如何让python的运行速度得到提升
2020/07/08 Python
python的launcher用法知识点总结
2020/08/07 Python
Python装饰器如何实现修复过程解析
2020/09/05 Python
高中军训感言200字
2014/02/23 职场文书
机电职业生涯规划书范文
2014/03/08 职场文书
成绩单公证书
2014/04/10 职场文书
活动总结怎么写
2014/04/28 职场文书
运动会口号16字
2014/06/07 职场文书
个人求职意向书
2015/05/11 职场文书
2015年幼儿教育工作总结
2015/07/24 职场文书