python---django中models配置修改数据库引擎

it2022-05-05  149

Django支持多种数据库,sqlite,mysql,oracle等,其默认数据库是sqlite

在settings文件中可以发现:

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }

其默认数据库是sqlite3

要想使用其他数据库,需要修改相应的引擎和配置

(1)sqlite:

'ENGINE': 'django.db.backends.sqlite3',    #设置引擎 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), #设置数据库存放路径

(2)mysql

DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #数据库引擎设置 'NAME': 'test', #数据库名称 'USER': 'root', #数据库用户名 'PASSWORD':'root', #数据库密码 'HOST':'', #主机地址,默认localhost 'PORT':'3306' #数据库端口 } }

然后在APP目录下models文件中添加:

from django.db import models # Create your models here. class UserInfo(models.Model): username = models.CharField(max_length=64) age = models.IntegerField()

使用命令生成数据表(python---django使用数据库(orm)):

python manage.py makemigrations python manage.py migrate

会发现报错:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

原因是因为:

Django默认你导入的是MySQLdb,但是MySQLdb 对于py3版本有很大问题,所以我们需要的驱动为pymysql,所以在项目名文件夹的__init__.py中引入pymysql(也可以直接在settings下的全局文件__init__.py中引入)

import pymysql pymysql.install_as_MySQLdb()

再进行启动,可以成功创建。

 

转载于:https://www.cnblogs.com/ssyfj/p/8645894.html


最新回复(0)