单表操作-增.删.改.查 ret=models.User.objects.filter(id=1)  #这里的结果是一个queryset对象 ret=modles.User.Objects.filter(ud=1).first()   #这里查询的结果是一个User对象,User就是表 新增记录 第一种方式通过对象来插入 urls.py from django.conf.urls import urlfrom django.contrib import adminfrom app01 impor…
数据库表的对应关系 1.一对一   #关联字段写在那张表都可以 PS:只要写OneToOneField就会自动加一个id 2.一对多  #关系确立,关联字段写在多的一方 3.多对多   #多对多的关系需要创建第三张表 PS:创建多对多的时候,ORM会自动创建第三张表,这张就是中间表 PS:自动 创建的第三章表命名规则就是app_表名_表名 创建表的对应关系 '''图书管理系统的数据库''' class Author(models.Model): '''作家的姓名和年龄''' # 表的主键可以不写…
基于对象的跨表查询 基于对象的跨表查询'''正向和反向查询'''# 正向 ----> 关联字段在当前表中,从当前表向外查叫正向# 反向 ---> 关联字段不在当前表中,当当前表向外查叫反向 '''一对一的查询'''# 查询lqz这个人的地址 正向查询按字段author = models.Author.objects.filter(name='qlz').first()print(author.author_detail.addr)   #这样就获取到了地址 # 查询lqz这个人的地址 反向查询…
Django之模型层第一篇:单表操作 一 ORM简介 ​ 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. ​ 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图1 但是直接编写原生sql语句会存在两方面的…
一.ORM简介       MTV或者MTV框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人员的工作量,不需要面对因数据库变更而导致的无效劳动. ORM(Object Relation Mapping)是“对象-关系-映射”的简称. 我们先来了解一下ORM扮演了一个什么角色,如上图,我们知道mysql是一个能够操作db/磁盘上数据的软件,python中想要操作磁盘数据时,它想到…
一 ORM简介 我们在使用Django框架开发web应用的过程中,不可避免地会涉及到数据的管理操作(如增.删.改.查),而一旦谈到数据的管理操作,就需要用到数据库管理软件,例如mysql.oracle.Microsoft SQL Server等. 如果应用程序需要操作数据(比如将用户注册信息永久存放起来),那么我们需要在应用程序中编写原生sql语句,然后使用pymysql模块远程操作mysql数据库,详见图1 但是直接编写原生sql语句会存在两方面的问题,严重影响开发效率,如下 #1. sql语…
单表操作: 一 项目的操作顺序: 1 在model.py文件中创建表结构 class Book(models.Model): id=models.AutoField(primary_key=True) title=models.CharField(max_length=32) price=models.DecimalField(max_digits=5,decimal_places=2) publish=models.CharField(max_length=32) pub_date=model…
一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 自关联是一种特殊的一对多的关系. [案例]:显示广州市的上级地区和下级地区. 地区表:id, atitle, aParent_id; mysql终端中批量执行sql语句:source areas.sql; 第1步,添加地区模型类 app1/models.py [关系属性],代表当前地区的父级地区 c…
基于对象的跨表查询是子查询 基于双下划线的查询是连表查询 PS:基于双下划线的跨表查询 正向按字段,反向按表名小写 一对一 需求:查询lqz这个人的地址# 正向查询ret = models.Author.objects.filter(name='lqa').values('author_detail__addr') #Author表作为基表,然后从基表中查到人名,然后从Authonr表跨到author_detail表中获取name对应的addr字段ret = models.Author.obje…
一.查询表记录 在学习查询表记录之前,先了解一下QuerySet,这是一种类似列表的数据类型,是由ORM创建的.我们学习查询表记录的方法时,一定要明确哪些方法返回了QuerySet类型,哪些方法返回model对象(一条表记录就是一个model对象)类型或者其他什么类型. 1.查询API <1> all():   查询所有结果,示例:Book.objects.all() 由objects管理器调用,返回值是QuerySet对象 <2> filter(**kwargs):   它包含了…