Django基础-----ORM简介、数据库中数据操作及简单的一对多模型
一:ORM
对象关系映射,是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换 。从效果上说,它其实是创建了一个可在编程语言里使用的–“虚拟对象数据库”。
在ORM框架中,它帮我们把类和数据表进行了一个映射,可以让我们通过类和类对象就能操作它所对应的表格中的数据。ORM框架还有一个功能,它可以根据我们设计的类自动帮我们生成数据库中的表格,省去了我们自己建表的过程。
django中内嵌了ORM框架,不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作
二:定义模型类
模型类定义在models.py文件中,继承自models.Model类。
(不需要定义主键列,在生成时会自动添加,并且值为自动增长。)
三:迁移
迁移由两步完成:
1.生成迁移文件:根据模型类生成创建表的迁移文件。
2.执行迁移:根据第一步生成的迁移文件在数据库中创建表。
生成迁移文件命令 python manage.py makemigrations
执行生成迁移文件命令后,会在应用booktest目录下的migrations目录中生成迁移文件
注:Django框架根据我们设计的模型类生成了迁移文件,在迁移文件中我们可以看到fields列表中每一个元素跟BookInfo类属性名以及属性的类型是一致的。同时我们发现多了一个id项,这一项是Django框架帮我们自动生成的,在创建表的时候id就会作为对应表的主键列,并且主键列自动增长。
执行迁移命令 python manage.py migrate
当执行迁移命令后,Django框架会读取迁移文件自动帮我们在数据库中生成对应的表格。
Django默认采用sqlite3数据库,上图中的db.sqlite3就是Django框架帮我们自动生成的数据库文件。 sqlite3是一个很小的数据库,通常用在手机中,它跟mysql一样,我们也可以通过sql语句来操作它。
下面使用sqliteman打开db.sqlite3文件进行查看。如果没有安装sqliteman,需要先使用如下命令进行安装。
sudo apt-get install sqliteman
具体打开步骤:
四:数据操作
完成数据表的迁移之后,下面就可以通过进入项目的shell,进行简单的API操作。如果需要退出项目,可以使用ctrl+d快捷键或输入quit()。
进入项目shell的命令:(增删改查)
python manage.py shell
新建图书对象:
b=BookInfo()
b.btitle=“射雕英雄传”
from datetime import date
b.bpub_date=date(1991,1,31)
b.save()
查询所有图书信息:
BookInfo.objects.all()
修改图书信息:
b.bpub_date=date(2017,1,1)
b.save()
b.bpub_date
删除图书信息:
b.delete()
五:对象的关联操作
在两个表格中分别创建对象a,b,然后在其中对象a中设置一个属性与对象b相关联,产生关联操作。对象a所在的表称为主表,对象b所在的表称为从表。
(主从表:主从表,从表数据依赖于主表,一般最后查询数据时把主表与从表进行关联查询。主表可用于存储主要信息,如客户资料(客户编号,客户名称,客户公司,客户单位等),从表用来存储客户扩展信息(客户订单信息,客户地址信息,客户联系方式信息等)。)
创建一个BookInfo对象
b=BookInfo()
b.btitle=‘abc’
b.bpub_date=date(2017,1,1)
b.save()
创建一个HeroInfo对象
h=HeroInfo()
h.hname=‘a1’
h.hgender=False
h.hcomment=‘he is a boy’
h.hbook=b
h.save()
图书与英雄是一对多的关系,django中提供了关联的操作方式。
获得关联集合:返回当前book对象的所有hero。
b.heroinfo_set.all()
- Django中关于ORM数据库中的操作————(主要是models.py的设计(数据表的设计)与settings.py 的配置)
- sqlite3数据库C语言简单操作基础之数据的查找(三)
- 使用pgadmin3操作数据库 简介,误删数据表格后用Django重新生成表
- sqlite3数据库C语言简单操作基础之数据的增删改(二)
- Django初级手册1-项目和应用的创建与简单的数据库操作
- Servlet基础学习二(共享数据,操作数据库)
- ABAP基础-数据更新至数据库操作解析
- [置顶] Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作
- 关系型数据库基础之:简单的数据查询
- 【转】django的ORM操作数据库样例
- 既之前的基础,先写个简单的PHP 与数据库 的数据交流
- 自定义封装简单的基于FMDB以及数据model的数据库操作
- Django进阶(一) 数据库的ORM操作之一对多
- Django进阶(二) 数据库的ORM操作之多对多
- Django入门(四) 简单操作数据库
- postgresql 数据库中数据的导入导出(简单操作+示例)
- Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作
- 深入学习Django源码基础9 - 简单分析DjangoORM部分
- web实现数据库以及数据查看和简单操作
- Objective-C ,ios,iphone开发基础:ios数据库(The SQLite Database),使用终端进行简单的数据库操作