关于Django中ORM数据库迁移的配置

Posted 左半边向左转

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Django中ORM数据库迁移的配置相关的知识,希望对你有一定的参考价值。

Django中ORM数据库迁移配置

 

1,若想将模型转为mysql数据库中的表,需要在settings中配置:

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME:bms,           # 要连接的数据库,连接前需要创建好
        USER:root,        # 连接数据库的用户名
        PASSWORD:‘‘,        # 连接数据库的密码
        HOST:127.0.0.1,       # 连接主机,默认本级
        PORT:3306            #  端口 默认3306
    }
}

2,需要激活我们的mysql。然后,启动项目,会报错:no module named MySQLdb 。这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb 对于py3有很大问题,所以我们需要的驱动是PyMySQL 所以,我们只需要找到项目名文件下的init,在里面写入:

import pymysql
pymysql.install_as_MySQLdb()

 *注意1,需确保配置文件中的INSTALLED_APPS中写入我们创建的app名称

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    "book"
]

*注意2,如果报错如下:

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

MySQLclient目前只支持到python3.4,因此如果使用的更高版本的python,需要修改如下:

通过查找路径C:\Programs\Python\Python36-32\Lib\site-packages\Django-2.0-py3.6.egg\django\db\backends\mysql 这个路径里的文件把

if version < (1, 3, 3):
     raise ImproperlyConfigured("mysqlclient 1.3.3 or newer is required; you have %s" % Database.__version__)

 注释掉 就OK了。 

 

*注意3,如果想打印orm转换过程中的sql,需要在settings中进行如下配置:

 

LOGGING = {
    ‘version‘: 1,
    ‘disable_existing_loggers‘: False,
    ‘handlers‘: {
        ‘console‘:{
            ‘level‘:‘DEBUG‘,
            ‘class‘:‘logging.StreamHandler‘,
        },
    },
    ‘loggers‘: {
        ‘django.db.backends‘: {
            ‘handlers‘: [‘console‘],
            ‘propagate‘: True,
            ‘level‘:‘DEBUG‘,
        },
    }
}

 

 

 

 

 

 

以上是关于关于Django中ORM数据库迁移的配置的主要内容,如果未能解决你的问题,请参考以下文章

Django

(Django)气流中的 ORM - 有可能吗?

Django ORM 迁移在 IntegerField 上给出“ValueError:int() 的无效文字”

Django(20)ORM模型迁移命令

Django ORM框架

关于django操作orm的一些事--反向生成orm连接多个数据库