1. 程式人生 > >關於Django中ORM數據庫遷移的配置

關於Django中ORM數據庫遷移的配置

項目 class exceptio python36 3.4 center properly orm ble

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數據庫遷移的配置