ORM(对象关系映射) 不少语言中的web框架都有这个概念python
为何要有ORM?mysql
ORM优势:web
ORM的缺点:sql
ORM的重点相互对应数据库
类 | 数据表 |
---|---|
属性 | 字段 |
对象 | 数据行 |
ORM能作哪些事情django
Django中的ORM如何使用app
1.Django框架链接哪一个数据库 ---》settings.py中的DATABASE列表中框架
2.告诉Django框架用什么链接数据库翻译
在和settings.py同级目录中的__init__.py中配置一下参数code
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语句,去数据库执行