python3.5 django mysql pymysql MySQL
DATABASE_ENGINE = ”
DATABASE_NAME = ”
DATABASE_USER = ”
DATABASE_PASSWORD = ”
DATABASE_HOST = ”
DATABASE_PORT = ”
以上各字段是什么意思,这里就不解释了
主要看一个东西就是DATABASE_ENGINE该怎么定义不同的数据库,按照官方文档上面所说,如下表:
表 5-1. 数据库引擎设置
设置 | 数据库 | 适配器 |
---|---|---|
postgresql | PostgreSQL | psycopg 版本 1.x, http://www.djangoproject.com/r/python-pgsql/1/. |
postgresql_psycopg2 | PostgreSQL | psycopg 版本 2.x, http://www.djangoproject.com/r/python-pgsql/. |
mysql | MySQL | MySQLdb , http://www.djangoproject.com/r/python-mysql/. |
sqlite3 | SQLite | Python 2.5+ 内建。 其他, pysqlite , http://www.djangoproject.com/r/python-sqlite/. |
ado_mssql | Microsoft SQL Server | adodbapi 版本 2.0.1+, http://www.djangoproject.com/r/python-ado/. |
oracle | Oracle | cx_Oracle , http://www.djangoproject.com/r/python-oracle/. |
其他的数据库不在此讨论,先看看mysql,官方文档说django要使用mysql时,需要安装MySQL库,但是不幸的是我用了python3.5,然而MySQL不支持python3.5;在python3.5中可以使用pymysql,但又有一个不幸,就是pymysql不支持django,下来主要说说怎么解决:
可以在setting.py同目录下的__init__.py中添加如下命令:
import pymysql
pymysql.install_as_MySQLdb()
然后重新同步数据库,并新建用户名密码:
$python manage.py makemigrations
$python manage.py migrate
$python manage.py createsuperuser
如果不做最后这一步,当运行服务器之后,打开浏览器http://127.0.0.1:8000 就会出现这样一个错误(1146,Table ‘blog.django_session’ doesn’t exist”)