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語句,去數據庫執行