ORM,Django对数据库的连接和使用
ORM,Django对数据库连接和使用数据
-
ORM(对象关系映射) 很多语言中的web框架都有这个概念
-
为什么要有ORM?
- 写程序离不开数据
- 新的语法,不需要我们自己写SQL语句
- 我们按照新的语法写代码,他帮我翻译成SQL语句
-
ORM优点:
- 开发效率高
- 容易掌握
- 容易移植
-
ORM的缺点:
- 代码执行效率低
-
ORM的重点相互对应
-
类 数据表 属性 字段 对象 数据行
-
-
ORM能做哪些事情
- 操作数据表
- 操作数据行
-
Django中的ORM如何使用
-
1.Django框架连接哪个数据库 ---》settings.py中的DATABASE列表中
-
2.告诉Django框架用什么连接数据库
-
在和settings.py同级目录中的__init__.py中配置一下参数
-
import pymysql pymysql.install_as_MySQLdb()
-
-
-
3.在app下面的models.py这个文件中定义类
-
class Book(models.Model): id = models.AutoField(primary_key=True) #在数据库中生成自增的字段 title = models.CharField(max_length=20) # varchar(20) publisher = models.ForeignKey(to='Publisher') # ORM自动刚给外键字段加_id,即publisher指的是关联的对象,publisher_id才是Book中的关联键
-
外键关联后查询,所以为数据库添加数据时要注意参数!!!!
-
book_obj.publisher # 书籍关联的出版社对象 book_obj.publisher_id # 书籍关联的出版社id(数据库中真正保存的那一列的值) Book.objects.create(title=new_title, publisher=Publisher.objects.get(id=publisher_id)) #属性为publisher,则需要添加一个对象 Book.objects.create(title=new_title, publisher_id=publisher_id) #添加对应的外键关联值
-
-
-
4.俩个命令,在Terminal中输入以下命令,使其在数据库中生成数据
-
python manage.py makemigrations #在(app/migrations)上记录models.py的变更记录 python manage.py migrate #把变更记录翻译成SQL语句,去数据库执行
-
-
-