因为经常做django项目时,用到的数据都是经过爬虫手段保存在MySQL数据库中的,所以今天我们就来看看怎么将django与MySQL数据库连接在一起吧。
比如在这里,我们后期要用这里面的数据来完成我们的django项目时
我们应当如何解决这个问题呢?首先,我们先看一下该表的设计结构
然后我们创建一个django项目去
在settings.py配置数据库引擎
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'dushu', # 数据库名字 'USER': 'root', # 数据库账号 'PASSWORD': 'wx990826', # 数据库密码 'HOST': '127.0.0.1', # 数据库主机 'PORT': '3306', # 端口 } }
后台汉化配置
#汉化配置 LANGUAGE_CODE = "zh-hans" # 'en-us' TIME_ZONE = 'Asia/Shanghai'
然后测试看数据库是否配置成功
发现报以下错误
解决方案:
在python3中使用mysql,需要在项目目录下的init.py中加入下面这两行代码:
import pymysql pymysql.install_as_MySQLdb()
这时候再运行,就会发现没问题了,至于这里的爆红是因为告诉我们python3.6不再适合(可以忽略)
要想将数据库中的内容读取到,则需要在models.py里面写入对应的字段
然后执行迁移命令
1. 生成迁移文件
python manage.py makemigrations2. 同步到数据库中
python manage.py migrate
然后生成迁移文件
发现重新生成了一个映射文件,跟原来的没有关联上
这里我们可以做的是,
1.将原来有数据的表zgddxs改名为myapp_zgddxs,没数据的myapp_zgddxs命名为其他的。
2.将数据全部复制过去(不推荐)
然后创建一个超级用户去后台看是否关联上有数据的表
当然,不要忘记在admin.py里面注册表哈(不然看不见)
from django.contrib import admin from .models import Zgddxs #导入定义模型类 @admin.register(Zgddxs) class TagAdmin(admin.ModelAdmin): list_display = ['id','name','author','src']
点击进去便能看到我们的数据了,说明关联成功