最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法分析

 更新時間:2019年06月24日 10:13:50   作者:輕舞肥羊  
這篇文章主要介紹了django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法,結(jié)合實(shí)例形式分析了字典參數(shù)結(jié)合django model實(shí)現(xiàn)保存數(shù)據(jù)相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了django框架model orM使用字典作為參數(shù),保存數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:

假設(shè)有一個字典,里面已經(jīng)有了所有相關(guān)信息,現(xiàn)在想利用這個字典作為參數(shù),跟django model  結(jié)合,用很少的代碼量保存數(shù)據(jù),有什么簡便方法,比如有如下定義的model:

from django.db import models
class MyModel(models.Model):
  title=models.CharField(max_length=250)
  body= models.CharField(max_length=1000)
  ....

有一個字典:

data_dict = {
  'title' : 'awesome title',
  'body' : 'great body of text',
}

如果按照常規(guī)的做法,可能采用如下方式去保存數(shù)據(jù):

mymodel = MyModel()
mymodel.title = data_dict['title']
mymodel.bdy = data_dict['body']
mymodel.save()

或者這樣

mymodel = MyModel(title=data_dict['title'],body=data_dict['body'])
mymodel.save()

其實(shí)是一樣的,從dict里面去取得數(shù)據(jù)。

其實(shí)還有更簡單的方法,直接傳入這個dict數(shù)據(jù),但前提是: 字典數(shù)據(jù)里面的key 字段一定要與model中定義的field 對應(yīng),否則就會報錯.但事實(shí)上在封裝dict數(shù)據(jù)的時候,完全可以對應(yīng)的。用如下方法保存

mymodel = MyModel(**data_dict)
mymodel.save()

如果還有一些其他的擴(kuò)展字段,也是可以加在里面的,但注意. **data_dict 必須放在最后:

mymodel =MyModel(extra='hello', extra2='world', **data_dict)
mymodel .save()

還可以這樣做:

MyModel.objects.create(**data_dict)

這樣就只是實(shí)現(xiàn)了django model保存dict ,并且還可以擴(kuò)展

2013-01-04日更新:最近在一篇文章中發(fā)現(xiàn),如果要用字典dict作為參數(shù)更新一個model的方法如下:

mymodel=MyModel.objects.get(pk=pk)#....找到唯一的一個,自行修改
mymodel.__dict__.update(data_dict )
mymodel.save()

當(dāng)然也有用如下方式實(shí)現(xiàn)更新的:

MyModel.objects.filter(pk=pk).update(**data_dict )

希望本文所述對大家基于Django框架的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評論

常德市| 黄山市| 鄄城县| 涟源市| 保德县| 连云港市| 东明县| 临桂县| 桂林市| 雷州市| 博客| 台东市| 金山区| 柳河县| 东光县| 循化| 和林格尔县| 巢湖市| 临猗县| 肃宁县| 都江堰市| 姚安县| 东方市| 光泽县| 桃园县| 贵州省| 金门县| 承德县| 安顺市| 依兰县| 宁明县| 泰兴市| 平凉市| 龙门县| 达拉特旗| 洛南县| 本溪市| 长寿区| 福建省| 永登县| 沽源县|