一,ORM(对象关系映射) 很多语言的很多web框架中都有这个概念:
1.ORM模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术
2.ORM是通过使用描述对象和数据库之间映射的元数据,将数据中的对象自动持久化到关系型数据库中
3.ORM在业务逻辑层和数据层之间充当了桥梁的作用
Q:为什么要有ORM?
写程序离不开数据,(程序的本质,数据和数据的变化)
二,Python程序通过ORM连接数据库
1.ORM与SQL语句
1.新的语法,不需要我们自己写sql语句
2.我们按照新的语法写代码,ORM翻译成sql语句
2.ORM优点
1.开发效率高
2.容易掌握
3.容易移植
3.ORM缺点
1.代码的执行效率
4.ORM的重点
#映射关系 类 <--> 数据表 属性 <--> 字段 对象 <--> 数据行
5.ORM能做的时期
1.操作数据表
2.操作数据行
6.Django中ORM如何使用
1.告诉Django框架连接哪个数据库 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 告诉Django要连接的是MySQL数据库 'NAME': 'day57', # 数据库名称 'HOST': '127.0.0.1', # 数据库的IP 'PORT': 3306, # 数据库的端口 'USER': 'root', # 连接数据的账号 'PASSWORD': '123' # 连接数据库的密码 } } 2.告诉Django框架用什么连接数据库 在和settings.py同目录下的__init__.py文件中 import pymysql pymysql.install_as_MySQLdb() 3.在app下面的models.py这个文件中定义类 class 类名(model.Model): pass 4.两个操作数据库的命令 1.记录models.py的变更,并生成文件 python manage.py makemigrations 2.把变更记录翻译成sql语句,取数据库执行 python manage.py migrate
三,实例:图书管理系统
1.表结构设定 1.出版社 2.书籍 3.作者表 4.作者和书籍的关系表 2.出版社表的增删改查 1.查 1.查询所有出版社数据 ORM:publisher.objects.all() 2.HTML中写for循环(模板语言) {% for i in [...,...] %} {% endfor %} 2.删 1.HTTP中URL添加参数 /delete_publisher/?id=1 2.如何在Django中获取url中的参数 request.GET -->返回值时一个大字典 request.GET.get('id') -->取值 3.ORM中删除操作 Publisher.objects.filter(id=1).delete() 3.改 1.ORM修改 obj.name = '新出版社名称' obj.save() -->把改动提交到数据库 4.增 1.ORM创建数据 Publisher.objects.create(name='新华出版社')