码迷,mamicode.com
首页 > 其他好文 > 详细

Django orm使用教程

时间:2018-06-20 22:38:21      阅读:203      评论:0      收藏:0      [点我收藏+]

标签:arch   first   筛选条件   add   eve   五步   一对一   外键   运行   

Django orm使用教程

标签(空格分隔): Django orm


前言

orm使用五步走:

  1. 在settings文件中设置数据库连接配置
  2. 创建app
  3. 在models里面创建类
  4. 使用python make migrations命令将改变登记在小本本上面
  5. 使用python migrate命令将改动同步到数据库中

数值类型(常用)

  1. CharField varchar类型:name = models.CharField(max_length=32)
  2. IntegerField
    int类型:age = models.IntegerField()
  3. DecimalField
    decimal类型: money = models.DecimalField(max_digits=5,decimal_places=2,default=9.9)
  4. DateField
    Date类型:publish_date = models.DateField(auto_now_add=True)
  5. AutoField 一般用于id字段实现id字段的自增属性,在Django的orm中可以不用加id字段,orm在创建表的时候会自动将该字段添加到表中
  6. 实现ENUM数据类型的方式:

    gender_choice=((1,‘男‘),(2,‘女‘))
    gender = models.SmallIntegerField(choices=gender_choice,default=1)

    表的三种关系

    1.多对一:使用外键关联:ForeignKey
    2.多对多:使用一张新的表:在 orm中可以直接使用ManyToManyField创建
    3.一对一:在外键的基础上增加unique属性

orm之增删改

  • create():创建一个新对象,并保存对象
import datetime
models.author.objects.first().book_set.create(title=‘番茄物语‘)
  • add():把指定的model对象添加到关联对象集中
author_objs = models.author.objects.filter(id__lt=3)
models.book.objects.first().author.add(*author_objs)

-set():更新model对象的关联对象

book_obj = models.book.objects.first()
book_obj.authors.set([2,3])

-remove():从关联对象集中移除执行的model对象

book_obj = models.book.objects.first()
book_obj.authors.remove(3)

-clear():从关联对象集中移除一切对象
book_obj = models.book.objects.first()
book_obj.authors.clear()

必知必会13条

  1. all(): 查询所有结果
  2. filter(**kwargs) 包含了与所筛选条件相匹配的对象
  3. get(**kwargs) 返回与所筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误
  4. exclude(**kwargs) 返回与筛选条件不匹配的对象
  5. values(*field) 返回一个ValueQuerySet,运行后得到的并不是一系列model的实例化对象,得到的而是一个可迭代字典对象
  6. values_list(*field) 与values()非常相似,它返回的是一个元祖序列,而values()返回的是一个字典序列
  7. order_by(*field) 查询结果排序
  8. revers() 对查询结果反向排序,reverse()通常只能在具有已定义序列顺序的QuerySet上调用
  9. distinct() 从返回结果中剔除重复记录
  10. 返回数据库中匹配查询(QuerySet)的对象数量
  11. first() 返回第一条记录
  12. last() 返回最后一条记录
  13. exists() 如果QuerySet包含数据,就返回True,否则返回False

Django orm使用教程

标签:arch   first   筛选条件   add   eve   五步   一对一   外键   运行   

原文地址:https://www.cnblogs.com/guanzhicheng/p/9206151.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!