Django開發操作數據庫更簡單,內部提供了ORM框架
一、安裝第三方模塊
pip install mysqlclient
注:最新的django框架需要使用mysqlclient模塊,之前pymysql模塊與django框架有編碼兼容問題。
二、ORM
? ? ? ? 1、ORM可以幫助我們做兩件事:
? ? ? ? ? ? 創建、修改、刪除數據庫中的表(不用寫sql語句)(沒有辦法創建數據庫)。
? ? ? ? ? ? 操作表中的數據(不用寫sql語句)
? ? ? ? 2、創建數據庫
? ? ? ? ? ? ? ? 2.1、啟動Mysql服務
????????????????2.2、創建數據庫
create database 數據庫名稱 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
#操作數據庫指令#登錄
mysql -u root(mysql用戶名) -p#查看數據庫
show databases;
三、Django連接數據庫
在setting.py文件中進行配置和修改
DATABASES = {'default': {# 'ENGINE': 'django.db.backends.sqlite3',# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),'ENGINE': 'django.db.backends.mysql','NAME': 'index_day', # 數據庫'USER': 'root','PASSWORD': '12345678','HOST': '127.0.0.1', # mysql那臺機器的ip'PORT': '3306',}
}
四、Django操作表
? ? ? ? 1、創建表(models.py文件中操作)
from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)age=models.IntegerFIeld()"""
上面類等于以下sql語句
cerate table app項目名_userinfo(id bigint auto_increment primary key,name varchar(32),password varchar(64),age int
"""
? ? ? ? 完成以上,需要執行以下命令,生成表(app需要提前注冊)
python manage.py makemigrations
python manage.py migrate
? ? ? ? 2、刪除表
from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)#age=models.IntegerFIeld()
? ? ? ?注:只要把對應的類或者字段注銷或者刪除,在執行以下
python manage.py makemigrations
python manage.py migrate
? ? ? ? 3、修改表
? ? ? ? 注:在修改表,添加字段如果表本身有數據,需要默認值,或者設置默認可以為空。
? ? ? ? ? ? ? ? 如果類里面,字段不設置默認值,在執行命令行代碼時也會提示,屬于默認值或者退出
from django.db import mmodelsclass UserInfo(models.Model):name=models.CharFIeld(max_length=32)password=models.CharFIeld(max_length=64)#age=models.IntegerFIeld()data=models.IntegerField(defaul=2)#新字段默認為值為2content=models.IntegerField(null=True,blank=True)#新字段默認為值為空
? ? ? ? 再次執行該命令:
python manage.py makemigrations
python manage.py migrate
五、總結:
? ? ? ? 在以后的開發中如果想要對表結構進行調整:
? ? ? ? 在models.py文件中操作類就可以了
? ? ? ? 在執行命令:
python manage.py makemigrations
python manage.py migrate
????????