美文网首页
09_ORM单表操作

09_ORM单表操作

作者: knot98 | 来源:发表于2018-11-12 16:15 被阅读0次

ORM单表操作

一、数据迁移命令:

# 只是对变化做一个记录,记录文件在app的migrations
python3 manage.py makemigrations

# 把更改提交到数据库
python3 manage.py migrate

# 查看那个没有提交到数据库
python3 manage.py showmigrations 

二、添加表纪录

方式一:
# create方法的返回值book_obj就是插入book表中的斗罗大陆这本书籍纪录对象
book_obj=Book.objects.create(name="斗罗大陆",price=100,publish="唐门出版社",author="唐家三少")
方式二:
book_obj=Book(name="斗罗大陆",price=100,publish="唐门出版社",author="唐家三少")
book_obj.save()

三、查询表纪录

查询API
# 查询所有结果  all()
book_obj=models.Book.objects.all()

# 返回与所给筛选条件相匹配的对象  filter()
book_obj=models.Book.objects.filter(name='斗罗大陆').first()

# 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。  get()
book_obj=models.Book.objects.get(name='斗罗大陆')

# 返回与所给筛选条件不匹配的对象   exclude()
book_obj= models.Book.objects.exclude(name='斗罗大陆')

# 对查询结果进行排序  order_by() 
book_obj=models.Book.objects.all().order_by('price')

# 对查询结果进行反向排序 reverse()
book_obj=models.Book.objects.all().order_by('price').reverse()
# 对查询结果进行反向排序
book_obj=models.Book.objects.all().order_by('-price')

# 查询结果个数  count()
book_obj=models.Book.objects.all().count()

# 返回查询到的第一条数据  first()
book_obj=models.Book.objects.filter(name='斗罗大陆').first()

# 返回查询到的最后一条数据  last()
book_obj=models.Book.objects.filter(name='斗罗大陆').last()

# 如果QuerySet 对象包含数据,则返回True,否则返回False  exists()
book_obj=models.Book.objects.filter(name='斗破苍穹').exists()

# 返回得到的是一个 QuerySet 里面套字典   values()
 book_obj=models.Book.objects.all().values('name')
    
# 返回得到的是一个 QuerySet 里面套元组   value_list()
book_obj=models.Book.objects.all().value_list('name')

# 从返回结果中剔除重复纪录 去重  distinct()
book_obj=models.Book.objects.all().values('name').distinct()
基于双下划线的模糊查询
# 查询价格大于 89 的书
book_obj = models.Book.objects.filter(price__gt='89')

# 查询价格小于89 的书
book_obj = models.Book.objects.filter(price__lt='89')

# 小于等于
book_obj = models.Book.objects.filter(price__lte='89')

# 大于等于,
book_obj = models.Book.objects.filter(price__gte='89')

# ====================================================================

# in 在XX中
book_obj = models.Book.objects.filter(price__in=['23.8','89','100'])

# range 在XX范围内 between and
book_obj = models.Book.objects.filter(price__range=[50,100])

# contains 查询名字有'%斗%'的书
book_obj = models.Book.objects.filter(name__contains='斗')

# icontains 查询名字带p的书,忽略大小写
book_obj = models.Book.objects.filter(name__icontains='P')


# startswith  以XX开头
book_obj = models.Book.objects.filter(name__startswith='斗')

# endswith
book_obj = models.Book.objects.filter(name__endswith='陆')

# 字段名__year 按年查询
book_obj = models.Book.objects.filter(create_data__year='2012')

四、删除表纪录

models.Book.objects.filter(name='斗罗大陆').delete()
# 删除书名为"斗罗大陆"这本书

五、修改表纪录

models.Book.objects.filter(name='斗罗大陆').update(price=120)
# 修改书名为"斗罗大陆"这本书的价格为120

六、在Python脚本中调用Django环境

import os
if __name__ == '__main__':
    os.environ.setdefault("DJANGO_SETTINGS_MODULE","你的项目名.settings")
    import django
    # 启动django服务
    django.setup()

    from app01 import models
        

相关文章

  • 09_ORM单表操作

    ORM单表操作 一、数据迁移命令: 二、添加表纪录 方式一: 方式二: 三、查询表纪录 查询API 基于双下划线的...

  • 单表操作

    mapper中的class文件中的方法名字和要对应的xml文件中的id要一致 mapper的xml中可以不指定传入...

  • Python ORM 语句

    单表操作 多表操作(一对多): 多表操作(多对多): -------了不起的双下划线(__)之单表条件查询 ---...

  • MySQL学习笔记(三)修改操作、查询数据表

    操作数据表中的记录 插入操作 单表更新 单表删除 查询记录 where 条件表达式: 查询结果分组 GROUP B...

  • Oracle基础总结

    Oracle开发基础重点 Oracle一般操作 表空间 用户 表 表数据 Oracle 查询操作 单表查询 多表查...

  • 单表CRUD操作

    存储:把对象模型变成关系模型加载:关系模型变成对象模型(把数据库里的记录变成实体对象) 一、get和load区别 ...

  • Hibernate单表操作

    一、单一主键 1、两种主键生成策略 assigned:由java应用程序负责生成(手工赋值) native:又底层...

  • hibernate单表操作

    1.单一主键 assigned由java应用程序负责生成(手工赋值)(2)native 由底层数据库自动生成标示符...

  • springboot中通用mapper结合mybatis gen

    通用mapper是为了方便开发人员对单表进行crud操作而产生的一套通用方法。 通用mapper只支持单表操作,可...

  • mysql,库管理与表管理1

    关于数据库的操作 (以下操作均在MySQL中进行) 表管理 单表查询 有条件的查询:

网友评论

      本文标题:09_ORM单表操作

      本文链接:https://www.haomeiwen.com/subject/zyecfqtx.html