python==3.7.0
django==2.0
pymysql==0.9.3
一、配置數據庫
Django默認數據庫為sqlite
若該項目要使用mysql數據庫,需要更改配置
1、項目下setting.py中添加如下代碼
import pymysql pymysql.install_as_MySQLdb() DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'xxx', # 數據庫庫名(需提前創建好數據庫) 'USER': 'xxx', # 用戶名 'PASSWORD':'***', # 連接密碼 'HOST':'xx.xx.xx.xx', # 主機 'PORT':'3306', # mysql端口 } } # 將初始DATABASES注釋或刪除
2、進行數據遷移
進入項目地址(與manage.py同級),執行如下命令
python manage.py makemigrations # 創建 遷移 python manage.py migrate # 執行 遷移
3、執行完畢后,可在mysql指定的數據庫中看到已經完成遷移的數據表,至此,mysql數據庫配置完成
二、數據表的創建、刪除、修改(業務層面)
1、數據表的創建
# 在應用下創建數據表首先需要創建應用,並且注冊應用,才可以創表 # 在目標應用下的model.py中寫入所需創建的類,如在Usermanagement應用下編寫如下代碼 from django.db import models # Create your models here. class User(models.Model): id=models.CharField(max_length=50,primary_key=True) user_id=models.CharField(max_length=50) user_name=models.CharField(max_length=50) password=models.CharField(max_length=255) user_mail=models.CharField(max_length=50) user_status=models.IntegerField()
進入項目地址(與manage.py同級),執行如下命令
python manage.py makemigrations # 創建 遷移
# 此時會在應用下的migrations文件夾中生成0001_initial.py文件
python manage.py migrate # 執行 遷移
# 此時會在數據庫中創建名為Usermanagement_User的數據表

至此,數據表的創建結束
2、數據表的刪除
分兩步:①手動進入數據庫,刪除目標數據表;②在django_migrations表中刪除該表的注冊信息
至此,該數據表刪除成功
3、數據表的修改
# 還是在model.py中修改已經創建好的類 # 添加或者刪除或者修改字段 # 完成后執行如下命令 python manage.py makemigrations # 刪除、修改字段會直接提示結果
# 添加字段會提示是否加入默認值
此時可以選擇1,並且鍵入默認值''即可
或者在model.py中新增的字段代碼中加入默認值,再執行python manage.py makemigrations,代碼如下
from django.db import models
# Create your models here.
class User(models.Model):
id=models.CharField(max_length=50,primary_key=True)
user_id=models.CharField(max_length=50)
user_name=models.CharField(max_length=50)
password=models.CharField(max_length=50)
user_status=models.IntegerField()
xx=models.CharField(max_length=255,default='') # 加入default=''
python manage.py migrate # 執行 遷移
# 此時會更新數據庫中的表
至此,數據表中字段修改成功
數據表的每次修改都會記錄在migrations文件夾下,同時也會存儲在django_migrations表里
注:
python manage.py makemigrations python manage.py migrate # 以上代碼會執行全局model.py # 若想精確到執行某個app,可修改命令,如下 python manage.py makemigrations app_name python manage.py migrate app_name