django如何连接数据库mysql,django查询数据库操作

  django如何连接数据库mysql,django查询数据库操作

  

  为了在Django项目中操作数据库,需要先与数据库建立连接,这样程序中的数据才能与数据库关联起来进行数据的添加、删除和检查。通过pymysql模块完成与数据库的交互过程。

  Django项目默认使用mysqldb模块与mysql数据库进行交互,但是mysqldb模块对于python3.4版或以上版本并不完美,所以我们不得不使用替代方案。

  数据查询

  要从数据库中检索数据,必须首先获得一个*查询集* * (queryset),它表示从数据库中获得的对象的集合。它可以有零个、一个或多个过滤器。返回查询集的方法称为filter,根据给定的参数缩小查询结果的范围,相当于sql语句中的where或limit。

  在管理器上调用filter方法将返回查询集,

  查询集被一个过滤器过滤,然后返回到一个新的查询集,所以可以写成链式过滤。

  惰性执行:创建查询集不会带来任何数据库访问,在调用数据之前不会访问数据库。

  评估以下查询集:迭代、切片、序列化,结合if、repr()/print()/len()/list()/bool()。

  返回查询集

  全部()

  #获取所有数据,对应SQL: select * fromuser

  user . objects . all()filter(* * kwargs)返回QuerySet包含与给定搜索参数匹配的新查询集。

  #等效SQL: select * fromuser

  User.objects.filter()

  #等效SQL:select * from user warename= admin

  user . objects . filter(uname= admin )

  # level SQL:select * from muserweruid 1 and type=2

  User.objects.filter(uid__gt=1,type=2)

  # chain call,相当于user.objects.filter (uid _ _ gt=1,type=2)

  User.objects.filter(uid__gt=1)。过滤器(类型=2)排除(**kwargs)

  #不匹配,对应SQL:select * from muserherename!=管理

  user . objects . exclude(name= admin )order _ by(*字段)

  参数字段名称,可以有多个字段名称。默认为升序。

  如果要按某个字段降序排序,请在字段名前添加-:-uid ,以表示按uid降序排序。

  #按uid升序排序等效于orderbyuid

  User.objects()。order_by(uid )

  # descending by uid等效于orderbyuiddesc。

  User.objects.order_by(-uid )

  #多列排序等效于orderbypassword,uiddesc

  User.objects.order_by(密码,-uid )返回单个值

  下列方法后面不能跟其他筛选方法,因为它们不返回查询集。

  Get()只匹配一段数据。

  U=User.objects.get(pk=1)#正常

  U=用户。objects . get(uid _ _ gt=20)# Multipleobjectsreturned匹配多个数据。

  u=user . objects . get(uid _ _ lt=-1)# does不存在无法匹配第一个()和最后一个()

  User.objects.all()。first()#返回结果集中的第一个数据。

  User.objects.all()。last()#返回结果集中的最后一个数据计数()。

  返回结果集中的记录数,相当于select count(*)不返回整个结果集,比len方法更有效。

  User.objects.count()存在()

  判断查询集中是否有记录,如果有,返回True,否则返回False。

  User.objects.filter(uid=3)。存在()查询集限制

  查询类似于列表,可以用下标来限制,类似于sql语句中的limit子句。但指数不能为负。

  指数

  切片

  User.objects.all()[0]#相当于:limit0,1

  User.objects.all()[2]#相当于:limit2,1

  User.objects.all () [033602] #相当于limit2

  User.objects.all () [33602] #相当于limit2

  user . objects . all()[:2]

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些
  • 关系型数据库与非关系型数据库简介一样吗,关系型数据库非关系型数据库有哪些,关系型数据库与非关系型数据库简介
  • 关于redis数据库入门详细介绍图片,redis数据库的使用,关于Redis数据库入门详细介绍
  • 使用php连接mysql数据库,php连接数据库的方法
  • 使用php连接mysql数据库,php连接数据库的方法,一文详解PHP连接MySQL数据库的三种方式
  • 什么是分库分表,为什么要进行分库分表-,分库分表的区别,数据库分库分表是什么,什么情况下需要用分库分表
  • vb中adodb连接数据库,
  • treeview控件绑定数据,wpf treeview数据绑定,详解TreeView绑定数据库
  • sql的多表查询,数据库如何实现多表查询
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库
  • SQL数据库的图形管理界面工具是,sql图形界面创建数据库,SQLServer2019 数据库的基本使用之图形化界面操作的实现
  • sql数据库定时备份怎么弄,mysql 定期备份
  • sql数据库定时备份怎么弄,mysql 定期备份,MySQL 数据库定时备份的几种方式(全面)
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar
  • sqlserver的nvarchar和varchar,数据库varchar和nvarchar,SQL中varchar和nvarchar的基本介绍及其区别
  • 留言与评论(共有 条评论)
       
    验证码: