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。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    小迈克阅读 8,147评论 1 3
  • 英文原版:https://github.com/vinta/awesome-python中文版:https://g...
    会灰的大飞狼阅读 8,945评论 1 56
  • 在网上凑书单的时候,买了柏杨的《丑陋的中国人》。正如书名所说,全书汇集了柏杨先生在各个场合关于“丑陋的中国人”的演...
    1b0ccfd39571阅读 1,384评论 0 0
  • 猫叔曾说: “人生在世,很多东西并不是我们自己能决定的,比如说,大部分男人没法跟吴彦祖比帅,跟姚明比高,跟王思聪比...
    小能猫_d037阅读 1,267评论 0 0
  • 王山樵阅读 9,233评论 0 0