Django2.2 学习笔记 (3)_配置mysql和model

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:

扫描二维码关注公众号,回复: 8842037 查看本文章
python manage.py makemigrations app_name
python manage.py migrate app_name

参考链接:https://blog.csdn.net/stonesola/article/details/69758612

6、django的默认数据库以及新建的message已更新到mysql中

发布了18 篇原创文章 · 获赞 0 · 访问量 582

猜你喜欢

转载自blog.csdn.net/zhsworld/article/details/103774516