首页 > 其他分享 >django 06 模型层

django 06 模型层

时间:2022-12-14 20:12:24浏览次数:62  
标签:06 models res 模型 django filter objects User

模型层使用准备

# 1.django自带的sqllite3对时间字段不敏感,所以使用mysql会更常见
# 2.单独测试django某个功能层
       """django默认是不可以单独测试py文件的"""
       想测试某个py文件(主要是models.py):
       -1.测试环境1: pycharm提供的python console
       -2.测试环境2: 使用自带的tests或自己创建
            步骤1:拷贝manage.py前四行
            步骤2:自己加两行,并调用函数
                    import django
                    django.setup()
             """
             import os
             import sys
             
def main(): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djangoday05.settings') import django django.setup()
main() """ # 3.查看django的orm底层sql语句 -1. 我们手上是一个QuerySet对象,那么可以直接点query查看SQL语句。 -2. 查看所有orm底层的SQL语句也可以在配置文件添加日志记录

 

ORM关键字

# ORM查询关键字
   1. create()           # 创建数据并直接获取当前创建的数据对象
      """ 
       res = models.User.objects.create(name='tom',age=24)
       res = models.User.objects.create(name='liyuu',age=24)    
      """
2. filter() # 根据条件筛选数据,结果是QuertySet [数据对象1,数据对象2] """ res = models.User.objects.filter(name='hanser',age=29) """ 3.first()/last() # QuerySet支持索引取值但是只支持正数,不推荐使用索引取值 """ res = models.User.objects.filter(pk=100)[0] # 数据不存在索引值直接报错 res = models.User.objects.filter(pk=100).first() # 数据不存在不报错而是返回none res = models.User.objects.filter(pk=100).last() res = models.User.objects.filter(pk=1).first() # 数据存在返回一个对象 res = models.User.objects.filter(pk=1).last() """ 4.update # 更新数据 """ res = models.User.objects.filter(id=1).update() """ 5.delete # 删除数据 """ res = models.User.objects.filter().delete() """ 6.all # 查询所有数据 """ res = models.User.objects.all() """ 7.values() # 根据指定字段获取数据,结果是QuerySet [{},{},{},{}] """ res = models.User.objects.all().values('name') res = models.User.objects.filter().values() res = models.User.objects.values() """ 8.values_list() # 根据指定字段获取数据 结果是QuerySet [(),(),(),()] """ res = models.User.objects.all().values_list('name','age') """ 9.distinct() # 去重,主键不一样也不行 """ res = models.User.objects.values('name','age').distinct() """ 10.order_by() # 根据指定条件排序,默认是升序,字段前面加负号就是降序 """ res = models.User.objects.all().order_by('age') print(res) """ 11.get() # 根据条件筛选数据并直接获取到数据对象,一旦条件不存在会直接报错 """ res = models.User.objects.get(pk=1) print(res) res = models.User.objects.get(pk=100, name='jason') print(res) """ 12.exclude() # 取反操作 """ res = models.User.objects.exclude(pk=1) print(res) """ 13.reverse() # 颠倒顺序(被操作的对象必须是已经排过序) """ res = models.User.objects.all() res = models.User.objects.all().order_by('age') res1 = models.User.objects.all().order_by('age').reverse() print(res, res1) """ 14.count() # 统计结果集中数据的个数 """ res = models.User.objects.all().count() print(res) """ 15.exists() # 判断结果集中是否含有数据,如果有则返回True 没有则返回False """ res = models.User.objects.all().exists() print(res) res1 = models.User.objects.filter(pk=100).exists() print(res1) """

 

标签:06,models,res,模型,django,filter,objects,User
From: https://www.cnblogs.com/juzijunjun/p/16983390.html

相关文章

  • 模板层之标签、自定义模板语法、母版(模版)的继承与导入、模型层前期准备知识点、ORM常
    模板层之标签模板语法支持if判断(支持elif):{%if条件1(可以自己写也可以用传递过来的数据)%}<p>今天又是周三了</p>{%elif条件2(可以自己写也可以用传递过......
  • Django模板语法及常见ORM关键词
    昨日内容回顾路由分配将本来一层的路由匹配拆分成两层进行匹配,第一层由总路由进行匹配,分配给分路由匹配具体视图,这就是路由分类,通过路由分配可以更方便进行多人开发及......
  • django之模板层(templates)
    django之模板层(templates)模板语法简介模板语法是由后端处理的,我们一般使用render函数处理(视图层的函数,最终将处理好的html作HttpResponse返回出去)。模板层基本涉及三种......
  • Django框架:模版层
    目录模版层一、模版语法传值1.模版语法2.传值特性(1)方式一:通过字典的形式传值(2)方式二:locals()3.模版语法的传值特性二、过滤器1.过滤器语法2.过滤器的特点3.常见过滤器三、......
  • django 模版层
    目录今日内容概要今日内容详细模板层之标签自定义过滤器、标签及inclusion_tag(了解)模板的继承与导入模型层之前期准备ORM常用关键字今日内容概要模板层之标签自定义......
  • 16 Java内存模型与线程_Java内存模型
    目录1Java内存模型背景2主内存与工作内存3内存间交互及约束4volatile变量特性5原子性、可见性、有序性5.1原子性5.2可见性5.3有序性6先行发生原则7总结特别说明......
  • 206. 反转链表
    给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 1structListNode{2intval;3ListNode*next;4ListNode():val(0),next(null......
  • django模板之标签、继承、模型层之ORM常用关键字
    目录模板层之标签自定义过滤器、标签及inclusion_tag(了解)模板的继承与导入(重要)模型层之前期准备ORM常用关键字(重要)nullnull模板层之标签 {%if条件1(可以自己写也可以用......
  • 《Pytorch - 逻辑回归模型》
    2020年10月4号,依然在家学习。今天是我写的第二个Pytorch程序,从今天起也算是入门了。这里是简单的实现了逻辑回归开始。回顾线性回归,线性模型如下y=wx+b,图画的丑了,意......
  • 《Pytorch - BP全连接神经网络模型》
    2020年10月4号,国内已经5号凌晨了,依然在家学习。今天是我写的第三个Pytorch程序,从今天起也算是入门了。这一次我想把之前自己手写的matlab实现的简易的传统的BP神经网络在......