Windows下Django(Python3)使用Mysqlcl
2018-07-24 本文已影响2128人
月皎笔落
版本说明
之前一直都是用的内置的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。