Django create和save方法
Django的模型(Model)的本質(zhì)是類(lèi),并不是一個(gè)具體的對(duì)象(Object)。當(dāng)你設(shè)計(jì)好模型后,你就可以對(duì)Model進(jìn)行實(shí)例化從而創(chuàng)建一個(gè)一個(gè)具體的對(duì)象。Django對(duì)于創(chuàng)建對(duì)象提供了2種不同的save與create方法,我們來(lái)仔細(xì)分析下這兩種方式有什么不同。
我們來(lái)先看看下面這個(gè)例子。我們已經(jīng)設(shè)計(jì)好了一個(gè)Person的模型(如下)。
from django.db import modelsclass Person(models.Model):name = models.CharField(max_length=128)def __str__(self):return self.name
用save方法創(chuàng)建對(duì)象
用save方法創(chuàng)建一個(gè)名叫l(wèi)ucifer的具體對(duì)象,我們可以這么做。記住你只有用了save()方法后,Django才會(huì)將這個(gè)對(duì)象的信息存儲(chǔ)到數(shù)據(jù)庫(kù)中。
lucifer= Person(name="lucifer") lucifer.save()用create方法創(chuàng)建對(duì)象
正因?yàn)橛胹ave方法創(chuàng)建對(duì)象有2步,而且編程人員容易忘記加上save(),Django提供了一個(gè)更便捷的create方法,如下。如果你使用create方法,無(wú)需再加上save()。create方法不僅創(chuàng)建了新的對(duì)象,而且直接將信息存儲(chǔ)到數(shù)據(jù)庫(kù)里。
lucifer = Person.objects.create(name="lucifer ")User自帶的create_user方法
如果你要Auth自帶的User模型創(chuàng)建新對(duì)象,你需要使用create_user方法,而不是create方法,如下所示。create_user方法很有用,自動(dòng)會(huì)給密碼加Hash。
user1 = User.objects.create_user(username=username, username=password)
?
轉(zhuǎn)載于:https://www.cnblogs.com/Lucifer77/p/10521316.html
總結(jié)
以上是生活随笔為你收集整理的Django create和save方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python3中zip()函数的用法
- 下一篇: ModBus的小于3.5S间隔的理解