orm连接mysql_Django项目如何使用ORM连接MySQL
1. 手動創建數據庫
2. 在settings.py里面配置一下數據庫的連接信息(告訴Django連接哪一個數據庫)
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 連接數據庫的類型
'NAME': 'day62xiawu', # 數據庫名字
'HOST': '127.0.0.1', # IP
'PORT': 3306, # 端口
'USER': 'root', # 用戶名
'PASSWORD': '123456', # 密碼
}
}
3. 在和settings.py同目錄下的__init__.py文件中,告訴Django用pymysql代替MySQLdb來連接數據庫
import pymysql
pymysql.install_as_MySQLdb()
4. 在app/models.py中,定義類,類一定要繼承models.Model
class Book(models.Model):
id = models.AutoField(primary_key=True)
title = models.CharField(max_length=32)
5. 執行兩條命令
1. 在哪兒執行?
在項目的根目錄(有manage.py文件的那個目錄)
2. 命令
python manage.py makemigrations --> 將models.py文件中的改動記錄在小本本(app/migrations/00xx_****.py)上
python manage.py migrate --> 將改動翻譯成SQL語句,去數據庫中執行
2. 表和表之間的關系
1. 一對多(出版社和書)
publisher = models.ForeignKey(to="Publisher")
在數據庫中:
有沒有publisher這個字段?
數據庫中實際 生成的是一個 publisher_id 字段
2. 多對多(作者和書)
books = models.ManyToManyField(to="Book")
在數據庫中:
是通過第三張表建立的關系
3. 增刪改查操作
1. 單表增刪改查
增:
models.Publisher.objects.create(name="沙河出版社")
查:
models.Publisher.objects.get(id=1)
models.Publisher.objects.get(name="沙河出版社")
刪:
models.Publisher.objects.get(id=1).delete()
改:
obj = models.Publisher.objects.get(id=1)
obj.name = "沙河第二出版社"
obj.save()
2. 外鍵的增刪改查
增、刪、查同上
book_obj = models.Book.objects.get(id=1)
book_obj.publisher 是什么? *****
和我這本書關聯的出版社對象
book_obj.publisher.id 和我這本書關聯的出版社的id值
book_obj.publisher.name 和我這本書關聯的出版社的名稱
book_obj.publisher_id 是什么?
和我這本書關聯的出版社的id值
3. 多對多操作
1. 查id為1的作者都寫過的書?
author_obj = models.Author.objects.get(id=1)
author_obj.books.all() --> 和我這個作者關聯的所有書對象
2. 想給作者綁定多本書?
author_obj = models.Author.objects.get(id=1)
author_obj.books.set([1,2,3]) --> 把id是1、2、3的書和我這個作者關聯上
總結
以上是生活随笔為你收集整理的orm连接mysql_Django项目如何使用ORM连接MySQL的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《病中得樊大书》第四句是什么
- 下一篇: python中如何判断两个字符串是否相等