Django(15)ORM——配置(很重要)
1、配置数据库连接
1.1,下载pymysql
pip install PyMySQL
1.2,在Django的工程同名子目录的__init__.py文件中添加如下语句
from pymysql import install_as_MySQLdb
   
install_as_MySQLdb() # 让pymysql以MySQLDB的运行模式和Django的ORM对接运行
1.3,修改setting.DATABASES配置信息
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'HOST': '127.0.0.1',  # 数据库主机
        'PORT': 3306,  # 数据库端口
        'USER': 'root',  # 数据库用户名
        'PASSWORD': 'root123',  # 数据库用户密码
        'NAME': 'student'  # 数据库名字,要已经存在的数据库
    }
}
1.4,在MySQL中创建数据库
create database student; # mysql8.0默认就是utf8mb4;
create database student default charset=utf8mb4; # mysql8.0之前的版本
1.5,数据库迁移
python manage.py makemigrations
python manage.py migrate
扩展
- db first, 根据数据库的表生成类
 python manage.py inspectdb
- code first,根据类来创建数据库表
 python manage.py makemigrations
 python manage.py migrate
到此为止,其实已经完成
1.6,如果在ORM的运行中查看sql语句,在setting.py中粘贴以下代码
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console':{
            'level':'DEBUG',
            'class':'logging.StreamHandler',
        },
    },
    'loggers': {
        'django.db.backends': {
            'handlers': ['console'],
            'propagate': True,
            'level':'DEBUG',
        },
    }
}
1.7,确保配置文件中的INSTALLED_APPS中写入自己创建的app名称,一般情况会自动写入,有时候要手写
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    "app01"
]
1.8,error: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__)
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号