python==3.7.0python
django==2.0mysql
pymysql==0.9.3sql
1、配置數據庫
Django默認數據庫爲sqlite
若該項目要使用mysql數據庫,須要更改配置數據庫
一、項目下setting.py中添加以下代碼django
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註釋或刪除
二、進行數據遷移app
進入項目地址(與manage.py同級),執行以下命令spa
python manage.py makemigrations # 建立 遷移 python manage.py migrate # 執行 遷移
三、執行完畢後,可在mysql指定的數據庫中看到已經完成遷移的數據表,至此,mysql數據庫配置完成3d
2、數據表的建立、刪除、修改(業務層面)code
一、數據表的建立sqlite
# 在應用下建立數據表首先須要建立應用,而且註冊應用,才能夠創表 # 在目標應用下的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的數據表
至此,數據表的建立結束
二、數據表的刪除
分兩步:①手動進入數據庫,刪除目標數據表;②在django_migrations表中刪除該表的註冊信息
至此,該數據表刪除成功
三、數據表的修改
# 仍是在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