1、新建数据库
ps1:注意字符集和排序规则的选择
ps2:不用新建任何表
2、配置settings.py里的database
########在setting原来默认的sqlite
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
############修改成mysql如下
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'maxonline', #你的数据库名称
'USER': 'root', #你的数据库用户名
'PASSWORD': '19941028', #你的数据库密码
'HOST': '', #你的数据库主机,留空默认为localhost
'PORT': '3306', #你的数据库端口
}}
#由于mysql默认引擎为MySQLdb,在__init__.py文件中添加下面代码
#在python3中须替换为pymysql,可在主配置文件(和项目同名的文件下,不是app配置文件)中增加如下代码
import pymysql
pymysql.install_as_MySQLdb()
#如果找不到pymysql板块,则通过pip install pymysql进行安装。
如果报错“django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.”
请参考:https://www.cnblogs.com/dotnetcrazy/p/10779304.html
3、编写model
class Message(models.Model):
# CharField 类似于mysql中的varchar,需要接收一个 max_length 参数,用以指定数据库存储 VARCHAR 数据时用的字节数
# primary_key,如果设置为 True ,将该字段设置为该模型的主键。在一个模型中,如果没有对任何一个字段设置 primary_key=True 选项。 Django 会自动添加一个 IntegerField 字段,并设置为主键
# verbose_name 类似于注释
# TextField 类似于mysql中的longtext
name = models.CharField(max_length=20,verbose_name="姓名",primary_key=True)
email = models.EmailField()
address = models.CharField(max_length=100,verbose_name="地址")
message = models.TextField(verbose_name="留言")
class Meta(object):
# 定义表名
db_table = "message"
# 定义在管理后台显示的名称
verbose_name = '留言'
# 定义复数时的名称(去除复数的s)
verbose_name_plural = verbose_name
4、将model层转为迁移文件migration
python manage.py makemigrations
5、将新版本的迁移文件执行,更新数据库
python manage.py migrate
如上两个命令调用默认为全局,即对所有最新更改的model或迁移文件进行操作。如果想对部分app进行操作,就要在其后追加app name:
python manage.py makemigrations app_name
python manage.py migrate app_name
参考链接:https://blog.csdn.net/stonesola/article/details/69758612
6、django的默认数据库以及新建的message已更新到mysql中