Django 模型層選擇數據庫類型、創建一個表

一、ORM介紹

1.什麼是ORM

  • ORM 全拼Object-Relation Mapping.
  • 中文意爲 對象-關係映射.
  • 在MVC/MVT設計模式中的Model模塊中都包括ORM

2.ORM優勢

(1)只需要面向對象編程, 不需要面向數據庫編寫代碼.

  • 對數據庫的操作都轉化成對類屬性和方法的操作.
  • 不用編寫各種數據庫的sql語句.

(2)實現了數據模型與數據庫的解耦, 屏蔽了不同數據庫操作上的差異.

  • 不在關注用的是mysql、oracle...等.
  • 通過簡單的配置就可以輕鬆更換數據庫, 而不需要修改代碼.

3.ORM劣勢

  • 相比較直接使用SQL語句操作數據庫,有性能損失.
  • 根據對象的操作轉換成SQL語句,根據查詢的結果轉化成對象, 在映射過程中有性能損失.

4.ORM和數據庫關係:

  • 在Django中model是你數據的單一、明確的信息來源。它包含了你存儲的數據的重要字段和行爲。通常,一個模型(model)映射到一個數據庫表.

基本情況:

  • 每個模型都是一個Python類,它必須繼承models.Model類
    django中遵循 Code Frist 的原則,即:先創建類,根據代碼中定義的類來自動生成數據庫表。
    模型的每個屬性都代表一個數據庫字段。
    綜上所述,Django爲您提供了一個自動生成的數據庫訪問API。

 

對象-關係映射

二、創建一個簡單的表

1 選擇數據庫類型

  • Django默認自帶sqllite的數據庫驅動,默認使用sqllite的數據庫,可在project文件下的settings.py中修改配置

A)sqllte配置

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

B)mysql配置

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'HttpRunner',  # 新建數據庫名,創建的表都在這下面
            'USER': 'root',  # 數據庫登錄名
            'PASSWORD': 'Hst888888',  # 數據庫登錄密碼
            'HOST': '192.168.91.45',  # 數據庫所在服務器ip地址
            'PORT': '3306',  # 監聽端口 默認3306即可
        }
    }

C)注意事項
django默認導入的驅動是MySQLdb模塊【適用於python2】
python3需要的驅動是pymysql,我們需要在項目名文件下的init_.py(settings.py同級的文件)中添加如下代碼:

 import pymysql
   pymysql.install_as_Mysqldb()

以上代碼就是告訴python使用pymysql,不要使用MySQLdb

2 註冊應用

 INSTALLED_APPS = [
            'django.contrib.admin',
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.messages',
            'django.contrib.staticfiles',
            'app01',#註冊APP,上面都是默認值
        ]

3 創建類

在app01/models.py 中寫下以下代碼:

from django.db import models

#在數據庫中創建表名爲:app01_userinfo
#Django會自動將應用名稱添加在表前面
class UserInfo(models.Model):#創建的類必須繼承models.Model
    #當model中如果沒有自增列,則自動會創建一個列名爲id的主鍵
    username=models.CharField(max_length=32)
    password=models.CharField(max_length=32)

4 生成數據表

完成以上操作,接下來就是根據models中的類在數據庫中生成對應的表

命令行窗口切換到項目根目錄執行以下操作:

    python manage.py makemigrations  #在app01/migrations下會生成數據遷移腳本
    python manage.py migrate  #應用到db生成數據表

到這一步一個簡單的數據庫就創建完成了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章