1. 程式人生 > >django--ORM入門到精通

django--ORM入門到精通

inf 對象 ngs 入門到 連接數據庫 create radi 記憶 del


一,Django ORM 與原生SQL對比

ORM:  
  優點:
    1.簡單,不用自己SQL語句
    2.開發效率高
  缺點:
    1.記憶你這個特殊的語法
    2. 相對於大神的SQL語句,肯定執行效率有差距
  


二、ORM的對應關系

ORM的對應關系:
    類        --->    數據表
    對象      --->    數據行
    屬性      --->    字段


三、ORM能做的事兒

ORM能做的事兒:
    1.操作數據表    --->    創建表、刪除表、修改表
    2.操作數據行    --->    數據的增、刪、改、查
    
    註意事項:不能創建數據庫、自己動手創建數據庫


四、自己動手手動創建數據庫

1. 修改django項目中settings.py 中數據庫連接類型:

create database dbs11;


2. 在Django項目中設置連接數據庫的相關配置(告訴Django連接哪一個數據庫)

#數據庫相關配置
DATABASES = {
    'default':{
        #連接的數據庫類型
        'ENGINE':'django.db.backends.mysql',
        #連接數據庫的地址
        'HOST':'127.0.0.1',
        #數據庫端口
        'PORT':3306,
        #連接數據庫的名稱
        'NAME':"dbs11",
        #連接數據庫的用戶名
        'USER':'root',
        #連接數據庫的密碼
        'PASSWORD':'123456'
    }
}


3.告訴Django用pymysql代替默認的MySQLDB 連接MySQL數據庫

在項目目錄中__init__.py文件中導入MySQL連接配置文件

import pymysql

#告訴Django用pymysql來代替默認的MySQLdb
pymysql.install_as_MySQLdb()


4.在項目如(app)下面的models.py 文件中定義一個類,這個類必須繼承models.Model

from django.db import models

#ORM相關的只能寫在這個文件裏,寫到別的文件裏Django找不到
##例如:

class UserInfo(models,Model):
    id = models.AutoField(primary_key=True)    #創建一個自增的主鍵字段
    name = models.CharField(null=False,max_length=16)    #創建一個varchar類型的字段不能為空


5.執行兩個命令

python3 manage.py makemigrations
python3 manage.py migrate


django--ORM入門到精通