简介
在实际生产环境,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 启动服务