Django中create和save方法的不同
前言
Django的模型(Model)的本質(zhì)是類,并不是一個具體的對象(Object)。當(dāng)你設(shè)計好模型后,你就可以對Model進行實例化從而創(chuàng)建一個一個具體的對象。Django對于創(chuàng)建對象提供了2種不同的save與create方法,我們來仔細分析下這兩種方式有什么不同。
我們來先看看下面這個例子。我們已經(jīng)設(shè)計好了一個Person的模型(如下)。
from django.db import models class Person(models.Model): name = models.CharField(max_length=128) def __str__(self): return self.name
用save方法創(chuàng)建對象
用save方法創(chuàng)建一個名叫l(wèi)ucifer的具體對象,我們可以這么做。記住你只有用了save()方法后,Django才會將這個對象的信息存儲到數(shù)據(jù)庫中。
lucifer= Person(name="lucifer") lucifer.save()
用create方法創(chuàng)建對象
正因為用save方法創(chuàng)建對象有2步,而且編程人員容易忘記加上save(),Django提供了一個更便捷的create方法,如下。如果你使用create方法,無需再加上save()。create方法不僅創(chuàng)建了新的對象,而且直接將信息存儲到數(shù)據(jù)庫里。
lucifer = Person.objects.create(name="lucifer ")
User自帶的create_user方法
如果你要Auth自帶的User模型創(chuàng)建新對象,你需要使用create_user方法,而不是create方法,如下所示。create_user方法很有用,自動會給密碼加Hash。
user1 = User.objects.create_user(username=username, username=password)
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。
相關(guān)文章
Python實現(xiàn)批量把SVG格式轉(zhuǎn)成png、pdf格式的代碼分享
這篇文章主要介紹了Python實現(xiàn)批量把SVG格式轉(zhuǎn)成png、pdf格式的代碼分享,本文代碼需要引用一個第三方模塊cairosvg,需要的朋友可以參考下2014-08-08基于Python和openCV實現(xiàn)圖像的全景拼接詳細步驟
這篇文章主要介紹了基于Python和openCV實現(xiàn)圖像的全景拼接,本文分步驟通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-10-10在Python程序和Flask框架中使用SQLAlchemy的教程
SQLAlchemy為Python程序與SQL語句之間建立了映射,是Python操作數(shù)據(jù)庫的利器,這里我們將來看在Python程序和Flask框架中使用SQLAlchemy的教程,需要的朋友可以參考下2016-06-06python轉(zhuǎn)化excel數(shù)字日期為標準日期操作
這篇文章主要介紹了python轉(zhuǎn)化excel數(shù)字日期為標準日期操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-07-07