首页 > 其他 > 详细

64.Django07——模型层

时间:2020-05-30 15:57:50      阅读:26      评论:0      收藏:0      [点我收藏+]

 

 

 

之前在Django简介中也简单介绍过Django ORM ,今天我们正式介绍Django中的模型层

一、ORM再介绍

我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增、删、改、查),而一旦谈到数据的管
理操作,就需要用到数据库管理软件,例如mysql、oracle、Microsoft SQL Server等。
如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库
但是直接编写原生sql语句会存在两方面的问题,严重影响开发效率,如下:
1.sql语句的执行效率:应用开发程序员需要耗费一大部分精力去优化sql语句
2. 数据库迁移:针对mysql开发的sql语句无法直接应用到oracle数据库上,一旦需要迁移数据库,便需要考虑跨平台问题
为了解决上述问题,django引入了ORM的概念,ORM全称Object Relational Mapping,即对象关系映射,是在pymysq之上又进行了
一层封装,对于数据的操作,我们无需再去编写原生sql,取代代之的是基于面向对象的思想去编写类、对象、调用相应的方法等,
ORM会将其转换/映射成原生SQL然后交给pymysql执行
技术分享图片

二、单表操作

1.增

2.删

3.查

4.改

三、常见的查询方法之必知必会13条

1.all() 查询所有数据

2.filter() 带有过滤条件的查询

3.get() 直接拿数据对象 但是条件不存在直接报错

4.first() 拿queryset里面第一个元

5.last()

6.values() 可以指定获取的数据字段 select name,age from ... 列表套字典

7.values_list() 列表套元祖

8.distinct() 去重

9.order_by()

10.reverse() 反转的前提是 数据已经排过序了 order_by()

11.count() 统计当前数据的个数

12.exclude() 排除在外

13.exists() 基本用不到因为数据本身就自带布尔值 返回的是布尔值

四、神奇的双下划线查询

五、多表操作

六、外键字段的增删改查

七、跨表查询(重点)

1.子查询

2.联表查询

 

64.Django07——模型层

原文:https://www.cnblogs.com/heirenxilou/p/12992880.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!