昨天刚刚看了下Django的教程,决定把数据库改成mysql,嗯~原本以为挺简单的改个引擎就行。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'test',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
在改完settings.py后开开心心的执行python3 manage.py runserver
等待服务启动中.......
咦报错。。。。
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named 'MySQLdb'
仔细一看哦原来是只要安装一下mysqldb这个扩展就好
于是乎 pii3 install mysqldb
应该可以完成了吧~等待安装......
yiyelo又报错
error: Microsoft Visual C++ 10.0 is required (Unable to find vcvarsall.bat).
好吧,继续百度要安装这个。。。。要安装那个。。。。总而言之就是一直安装别的东西,然后捣鼓了4,5个小时还没弄出来
进入正题
在搜索中发现原来python3已经用pymysql代替了mysqldb~
bow!bow!bow!内心既开心又奔溃,一脸黑线~
Django链接mysql步骤:
- 先检验有没有安装pymysql包,即import pymysql,如果导入失败的话用pip install pymysql安装
- 修改settings.py里的DATABASES字段:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'test',
'USER':'root',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
- 很关键的一步,在项目的init.py文件下加入如下语句:
import pymysql
pymysql.install_as_MySQLdb()
- 使用python manage.py runserver运行服务器成功
使用mysql
数据迁移
- 在models.py下创建好model
class User(models.Model):
class Meta:
db_table = 'usertest'
id = models.IntegerField(db_column='UID', primary_key=True)
userName = models.CharField(max_length=255, db_column='username', blank=False)
passWord = models.CharField(max_length=255, db_column='password', blank=False)
cid = models.IntegerField( db_column='CID', blank=False)
对应关系,一个表对应一个类,表中的字段为类的属性,db_table为表名。
User是在django中操作的句柄
- 执行python3 manage.py makemigrations app名(可选)生成迁移文件
添加了app名则只对该app生成迁移文件,默认全部
- 可执行python manage.py sqlmigrate blog 0001查看生成的msyql语句
0001是生成迁移文件的编号,对应各自app的migrations目录下的.py文件
- 执行python3 manage.py migrate进行迁移操作
查找数据
单表查询:
总结
写的不是很好,希望可以帮助到大家,如有错误欢迎在评论区指出
接下来感谢两位大神给我灵感,附上他们文章的链接
http://blog.csdn.net/it_dream_er/article/details/52093362
http://blog.csdn.net/winsonyuan/article/details/51500122