1. 程式人生 > >django ORM 數據庫連接配置

django ORM 數據庫連接配置

連接 效率 如何 字段 .sql play 分享 nds open

前言

django 中連接數據,可以使用pymysql 也可以使用django 自帶的框架ORM

pymysql 操作數據庫

用pymysql連接MySQL數據庫查詢數據
1. import pymysql
2. 建立連接
3. 獲取光標
4. 執行SQL語句
5. 獲取數據
6. 關閉光標
7. 關閉連接

ORM是個啥

對象關系映射

類      數據表
屬性     字段
對象    數據行

兩者的比較

使用pymysql連接數據庫缺點:
1. 麻煩
2. 自己寫SQL語句!!!
使用ORM工具連接數據庫

- 優點:
1. 不用自己寫SQL語句!!!
- 缺點:
1. 執行效率不高(需要翻譯成語句再去執行)

Django中如何使用ORM

1. 告訴Django連接哪個MySQL數據庫(settings.py)

技術分享圖片
settings.py  中數據庫連接配置
#默認的配置,默認使用的是django 自帶的數據庫sqlite3
# DATABASES = {
#     ‘default‘: {
#         ‘ENGINE‘: ‘django.db.backends.sqlite3‘,
#         ‘NAME‘: os.path.join(BASE_DIR, ‘db.sqlite3‘),
# } # } DATABASES = { default: { ENGINE: django.db.backends.mysql, #引擎 NAME: cmdb, #數據庫名稱 HOST:127.0.0.1, #主機地址 PORT:3306, #端口 USER
:root, #用戶名 PASSWORD:111111, #密碼 } }
View Code

2. 告訴Django用pymysql連接MySQL數據庫 (默認用的是MySQLDB)

在項目的__init__.py 中加入如下配置

技術分享圖片
import pymysql
pymysql.install_as_MySQLdb()
View Code

3. 去app/models.py裏面創建類

技術分享圖片
from django.db import models
class IDC(models.Model):
    """
    機房信息
    """
    name = models.CharField(機房, max_length=32)
    floor = models.IntegerField(樓層, default=1)

    class Meta:
        verbose_name_plural = "機房表"

    def __str__(self):
        return self.name
View Code

4. 讓Django去數據庫幫我創建類對應的數據表
  1. python manage.py makemigrations          --> 將models.py的改動記錄在小本本上
  2. python manage.py migrate              --> 將變更記錄翻譯成SQL語句,去數據庫執行

5、在django 中查看數據庫表數據

  添加數據源(mysql 作為數據源)

  技術分享圖片

配置數據庫連接信息

  技術分享圖片

  註意:第一次配置需要下載驅動,在此頁面的下面有提示,下載可以。

  添加sqlite3 作為數據源

  技術分享圖片

  註意:sqlite3 為文件數據庫,數據庫實體本身就在django項目目錄內,直接右鍵作為數據源打開即可。

django ORM 數據庫連接配置