简介

  在实际生产环境,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文件中设置如下:



django链接mysql_sqlite

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


django链接mysql_sqlite


 

三、配置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   启动服务