Windows下Django(Python3)使用Mysqlclient配置并连接Mysql

版本说明

之前一直都是用的内置的djangodb,数据保存在本地的一个slite文件里,但是项目开发要使用mysql这样的大型数据库了。查了一下网上的教程,大多直接import Mysqldb,但是我用的是python3(django2.0以上版本已经不支持py2了),找了一下还是有解决办法的。
版本: python 3.6.1, django 2.0.7

下载MysqlClient扩展包

可以访问LFD的开源网站,很多windows下的python扩展包都可以找到,建议mark一下。找到mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl,点击下载。
执行cmd命令:

pip install mysqlclient‑1.3.13‑cp36‑cp36m‑win_amd64.whl

即安装好了Mysqlclient。

创建一个django项目

django的环境搭建这里就不多说了,python下执行以下命令创建一个django项目:

django-admin.py startproject mysqlTest

创建django应用:

django-admin.py startapp blog

并将该应用配置到项目中,修改settings.py:

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog',
]

修改原有数据库连接设置以连接到目标数据库:

# Database
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'schooldb',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'',
        'PORT':'',
    }
}

这里的schooldb是我在MySQL本地的一个数据库,HOST和PORT不填的话默认是localhost和3306。

创建数据模型

这里就举个简单的例子,在models.py中:

from django.db import models

# Create your models here.
class User(models.Model):
    UserName=models.CharField(max_length=200)
    Address=models.CharField(max_length=200)

生成迁移文件,执行迁移

执行以下命令以同步数据库更改:

python manage.py makemigrations
python manage.py migrate

Mysql查看数据表

这时SHOW TABLES; 后可以看到一个blog_user的表,

DESC blog_user;

表结构:

+----------+--------------+------+-----+---------+----------------+
| Field    | Type         | Null | Key | Default | Extra          |
+----------+--------------+------+-----+---------+----------------+
| id       | int(11)      | NO   | PRI | NULL    | auto_increment |
| UserName | varchar(200) | NO   |     | NULL    |                |
| Address  | varchar(200) | NO   |     | NULL    |                |
+----------+--------------+------+-----+---------+----------------+

这里我没指定PK,也自动生成了一个自增长的id。

你可能感兴趣的:(Windows下Django(Python3)使用Mysqlclient配置并连接Mysql)