django链接mysql

简介

  在实际生产环境,Django是不可能使用SQLite这种轻量级的基于文件的数据库作为生产数据库。一般较多的会选择MySQL。如果使用SQLite这种轻量级的数据库不需要手动配置。

一、安装Python访问MySQL的模块

  在 Python2 中,使用【pip install mysql-python】进行安装连接MySQL的库,使用时【import MySQLdb】进行使用;在Python3中Django官方已经不建议使用pymysql库了,而是改用mysqlclient,直接pip安装即可。

pip install mysqlclient

     并在guest目录下的__init__添加:

     import pymysql

     pymysql.version_info = (1, 4, 13, "final", 0)

     pymysql.install_as_MySQLdb() # 使用pymysql代替mysqldb连接数据库

     要不会报错:

     raise ImproperlyConfigured('mysqlclient 1.4.0 or newer is required; you have %s.' % Database.__version__)
     django.core.exceptions.ImproperlyConfigured: mysqlclient 1.4.0 or newer is required; you have 0.10.0.

 

二、配置Django的settings.py

  在Django的settings.py文件中设置如下:

复制代码
DATABASES = {
    'default': {
        # 配置mysql数据库,使用sqlite3的 跳过此步骤无需配置
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
        'NAME': 'ctango',  # 数据库名,自己本地创建。。。注意不是链接的名字而是数据库的名字(https://blog.csdn.net/biong188/article/details/100546630)
        'USER': 'root',  # 数据库用户名
        'PASSWORD': 'root',  # 数据库密码
        'HOST': '127.0.0.1',  #MySQL服务所在主机IP
        'PORT': '3306',  # MySQL服务端口
    }
}
复制代码

 

三、配置Django的时间及语言

 在Django的settings.py文件中设置如下:

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

四、同步数据

切换了数据库后,之前 Sqlite3 数据库里的数据并不能复制到 MySQL 中,所以需要重新进行数据 
库同步,使数据模型重新在 MySQL 数据库中生成表。

python3 manage.py migrate
 
 
因为更换了数据库,所以,Admin 后台超级管理员账号(admin/admin123456)也需要重新创建
python3 manage.py createsuperuser
同步数据库数据

创建后使用:python3 manage.py runserver   启动服务

 

  

posted on 2021-10-26 14:34  zfj822  阅读(169)  评论(0编辑  收藏  举报