django2连接mysql

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)

django2连接mysql_第1张图片
屏幕快照 2017-10-28 下午8.54.24.png
django2连接mysql_第2张图片
屏幕快照 2017-10-28 下午8.54.38.png

(如何创建和注册应用请参加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

效果如下

django2连接mysql_第3张图片
屏幕快照 2017-10-28 下午9.12.39.png

4.在mysql中载入你创建的表

至此打开mysqlbench可以发现我们想要的数据表还没有,我们需要将在django中已通过模型创建的数据库载入mysql

所以我们还需要在终端中cd到项目文件夹下,输入指令

$ python manage.py migrate

看到如下内容说明成功

django2连接mysql_第4张图片
屏幕快照 2017-10-28 下午9.15.11.png

四、检查

我们可以打开MySQLWorkBench可以看到我们的表已经存在

django2连接mysql_第5张图片
屏幕快照 2017-10-28 下午9.17.51.png
django2连接mysql_第6张图片
屏幕快照 2017-10-28 下午9.18.00.png

你可能感兴趣的:(django2连接mysql)