django 连接mysql
一:环境设置:
因为我用的python3.x django的版本较低。连接mysql 需要 mysql-python 需要mysqldb来连接,最后安装mysqldb的时候,需要安装python2.7。 崩溃。
最后网上查只需要修改project里的__int__.py文件。添加如下既可用pymysql 坑啊。折腾一晚上。
1 import pymysql 2 pymysql.install_as_MySQLdb()
当前需要安装pymysql模块。
然后在setting.py里设置:
1 DATABASES = { 2 'default': { 3 'ENGINE': 'django.db.backends.mysql',#数据库连接引擎。 4 'NAME': 'django',#数据库的名字。 5 'USER': 'evil',#用户。 6 'PASSWORD': '123',#密码 7 'HOST': '192.168.31.222',#连接IP 8 'PORT': '3306',#端口。 9 } 10 }
因为连接不同的数据库数据库的引擎是不一样的。
1 'django.db.backends.postgresql' 2 'django.db.backends.mysql' 3 'django.db.backends.sqlite3' 4 'django.db.backends.oracle'
如果使用 SQLite,请对数据库文件指定完整的文件系统路径。 例如
1 DATABASE_NAME = '/home/django/mydata.db'
HOST: 告诉 Django 连接哪一台主机的数据库服务器。 如果数据库与 Django 安装于同一台计算机(即本机),可将此项保留空白。 如果你使用SQLite,此项留空。
此处的 MySQL 是一个特例。 如果使用的是 MySQL 且该项设置值由斜杠( '/' )开头,MySQL 将通过Unix socket 来连接指定的套接字,例如
1 DATABASE_HOST = '/var/run/mysql'
二:数据库设置:
给远程IP授权访问:
1 GRANT ALL PRIVILEGES ON *.* TO 'evil'@'192.168.1.100'WITH GRANT OPTION;
给用户授权并赋予密码:
Grant all on django.* to 'evil'@'192.168.31.125' identified by "123";
三:测试
当我们设置好前2项之后,我们需要测试我们的连接串是否有问题:
打开terminal 执行如下命令:
python manage.py shell
如果没报错,说明我们建立的连接是没问题的。
如上是连接非默认sqlite的数据库的方法.
学习是一种态度,坚持是质变的利器!