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号