django2配置mysql
一、环境
前提配置:macOS python3 django2.0 mysql ide:PyChram
二、安装驱动
驱动:mysqldb/mysqlclient
因为django2.0官方文档中已说明mysqldb不再支持最新的django与python3,所以我们这里选择安装mysqlclient
github地址: https://github.com/PyMySQL/mysqlclient-python
(根据不同的操作系统需要安装不同的先行配置)
$ pip3 install mysqlclient
完成后可以在终端中打开ipython/python shell 验证是否安装驱动成功
import MySQLdb
如未报错,则说明成功
三、django连接mysql
1.将mysql设为默认数据库(django默认为sqlite)
(这里我们已经注册了一个应用,名为polls)
(如何创建和注册应用请参加django官方文档教程)
#mysetting.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': '你的数据库名',
'USER': 'mysql用户名',
'PASSWORD': 'mysql密码',
'HOST': '127.0.0.1',
'PORT': '3306', //通常为3306,具体参照mysql
}
}
///NAME所对应的数据库需要在mysql中先行创建database,具体参照mysql相关文档
TIME_ZONE = 'Asia/Shanghai' //设置时区
2.创建数据库模型
在models.py中创建您的数据模型
#models.py
from django.db import models
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
//这里创建了两个数据库,实现简单的问答功能
3.通过模型创建表
打开终端,cd到项目文件夹下
$ python manage.py makemigrations polls
应当看到类似如下
Migrations for 'polls':
polls/migrations/0001_initial.py:
- Create model Choice
- Create model Question
- Add field question to choice
接着在终端中输入
$ python manage.py sqlmigrate polls 0001
效果如下
4.在mysql中载入你创建的表
至此打开mysqlbench可以发现我们想要的数据表还没有,我们需要将在django中已通过模型创建的数据库载入mysql
所以我们还需要在终端中cd到项目文件夹下,输入指令
$ python manage.py migrate
看到如下内容说明成功
四、检查
我们可以打开MySQLWorkBench可以看到我们的表已经存在