Django默认支持 Mysql, Pgsql, oracle, sqllite。使用SqlLite时什么都不用安装,django已经自带客户端lib。数据库的Django官方文档。
https://docs.djangoproject.com/en/1.11/ref/databases/#mysql-notes
以使用MySql为例子,首先需要在settings.py的Databases里设置MySql的登录信息。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'django_test', #数据库名字
'USER': 'xx', #mysql 登录名字
'PASSWORD': '123456', #mysql 登录密码
'HOST': '192.168.1.21',
'PORT': '3306',
}
}
也可以采用OPTIONS的方式,这样就可以避免修改settings.py了。
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'read_default_file': '/path/to/my.cnf',
},
}
}
# my.cnf
[client]
database = NAME
user = USER
password = PASSWORD
default-character-set = utf8
设置完成之后,你的django项目就会使用Mysql数据库了。
运行命令:python manage.py makemigrations 会在migrations目录下产生修改数据库的py文件,文件次序是00001,,0002一次类推。
python manage.py sqlmigrate app_name migration_file_name 可以查看0001等文件生成的SQL语句。
python manage.py migrate 这个命令会最终操作你的数据库,所以运行migrate之前,数据库是不会有任何改变的。之所以有makemigrations 和migrate两个命令来完成修改数据库,主要是为了发布到生产环境方便。在开发环境中通过makemigrations生成修改数据库的py文件,再到生产环境中通过migrate来修改生产环境的数据库。