Django连接mysql

3次阅读

共计 1271 个字符,预计需要花费 4 分钟才能阅读完成。

1. 在虚拟环境中装置 pymysql 库

Django 我的项目默认应用 mysqldb 模块进行和 mysql 数据库之间的交互操作,然而 mysqldb 模块对于 python3.4 以上的版本反对还不够欠缺,所以咱们要应用代替计划 通过 pymysql 模块实现和数据库之间的交互过程

我应用的是 pipenv 创立的虚拟环境,所以用

pipenv install pymysql

2. 在我的项目主目录下的 init 文件中增加上面代码

import pymysql

这一句很重要,不然会报错 django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3,外面的数字可能会跟着具体版本号编号

pymysql.version_info = (1,3,13, ‘final’, 0)
pymysql.install_as_MySQLdb()

3. 在 settings 文件中设置数据库连贯

DATABASES = {
‘default’: {
# ‘ENGINE’: ‘django.db.backends.sqlite3’,
# ‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),
# 连贯 mysql
‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘django’,  #须要提前创立
‘USER’: ‘root’,
‘PASSWORD’: ‘123456’,
‘HOST’: ‘127.0.0.1’,
‘PORT’: ‘3306’
}
}

4. 创立模型类

在任意 app 目录下的 models 文件中

from django.db import models

# Create your models here.
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)

5. 将创立好的模型类映射到数据库

间接在命令行输出

python manage.py makemigrations

python manage.py makemigrations app_name

会创立一个如下的数据库表

CREATE TABLE myapp_person (
“id” serial NOT NULL PRIMARY KEY,
“first_name” varchar(30) NOT NULL,
“last_name” varchar(30) NOT NULL
);

能够指定我的项目中的 app 的名字,也能够不指定,不指定则映射我的项目中全副 app 的表模型

运行此命令能够在 app 内的 migrations 文件夹下生成迁徙记录文件

6. 将映射的数据表真正的在数据库中创立对应的表

运行上面命令

python manage.py migrate

python manage.py migrate app_name

而后就能够到 mysql 中对应数据库中看到生成的表了。

表的名字会以 appname_person 呈现。

正文完
 0