• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共43篇

    python3.X - Web - Django3.2.9

关闭

返回栏目

关闭

返回python3.X - Web - Django3.2.9栏目

22 - 表模型 - django.db.models - 增删改

作者:

贺及楼

成为作者

更新日期:2024-02-18 09:43:34

django增删改

法一:

  1. User.objects.create(username="xiaoming",age="2")
  2. 不需要save

法二:

  1. user = User(username="xiaoming",age="2")
  2. user.save()

法三:

  1. user = User()
  2. user.username = "xiaoming"
  3. user.age = "2"
  4. user.save()

法四:

  1. dic = {'user':'yangmv','pwd':'123456'}
  2. models.UserInfo.objects.create(**dic)

有改,无增 update_or_creat()

  1. Model.objects.update_or_create(defaults,**kwargs)
  2. dict_info = {'x': 777, 'y': 777,}
  3. Model.objects.update_or_create(id=nid,defaults=dict_info)
  4. Model.objects.update_or_create(id=nid,pk=npk,defaults=dict_info)
  5. id 是要搜索的值(可以多个)
  6. id 默认id字段,如果不是要模型加上primary_key=True
  7. defaults 是要更新的值,如果不存在就创建

增 批量 bulk_create()

django1.4以后加入了新的特性
django.db.models.query.QuerySet.bulk_create()

  1. #!/usr/bin/env python
  2. import os
  3. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
  4. def main():
  5. from blog.models import Blog
  6. f = open('oldblog.txt')
  7. BlogList = []
  8. for line in f:
  9. title,content = line.split('****')
  10. blog = Blog(title=title,content=content)
  11. BlogList.append(blog)
  12. f.close()
  13. Blog.objects.bulk_create(BlogList)
  14. if __name__ == "__main__":
  15. main()
  16. print('Done!')

  1. author = Author.objects.get()
  2. author.delete()

  1. Author.objects.filter(id=1).update()
  2. models.UserInfo.objects.filter(user='yangmv').update(pwd='520')
  3. dic = {'user':'yangmv','pwd':'123456'}
  4. models.UserInfo.objects.filter(user='yangmv').update(**dic) # 没试过估计也可以
  5. 或者
  6. obj = models.UserInfo.objects.get(user='yangmv')
  7. obj.pwd = '520'
  8. obj.save()