前提安装:
- 系统中Mysql
- 虚拟环境中安装了django框架
步骤:
1 、在虚拟环境中安装了pymysql驱动包
pip install pymysql
2 、在包的__init__.py
文件中加入以下两行:
import pymysql
pymysql.install_as_MySQLdb()
3 修改 setting.py 文件并设置数据库使用mysql:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'djTest', # djTest是本地数据库名,需要提前建好
'USER': 'root',
'PASSWORD': '123456',
'HOST': '127.0.0.1',
'PORT': '3306', #根据自己设定的mysql端口设定
}
}
4 、修改models.py建立任务
参考代码:
from django.db import models
# Create your models here.
# 必须要继承django中的models.Model 才是模型類 不然就是普通類,無法和數據庫做映射關系
class BookInfo(models.Model):
""""在模型類中直接定義自己的成員"""
# 字段的類型 必須是models中已經定義的類型
btitle = models.CharField(max_length=20)
bauthor = models.CharField(max_length=10, null=True)
# 類屬性 相當於 數據庫中的 table表中的字段
bpub_date = models.DateField()
def __str__(self):
return self.btitle # 在 python2中 需要轉換編碼 return self.btitle.encode('utf-8')
class HeroInfo(models.Model):
hname = models.CharField(max_length=10)
hgender = models.BooleanField()
hcontent = models.TextField()
# 注意:在django中,不需要定義id,此處爲外鍵oo
hbook = models.ForeignKey(BookInfo)
def __str__(self):
return self.hname
注意:一个任务里面里可以包含多个类,每个类相当于数据库中的一个数据表
6、 迁移操作
- 注册任务
仅首次迁移时需要操作,将任务名添加到注册到setting.py中INSTALLED_APPS元组里面,如下所示:
- 生成迁移
python manage.py makemigrations
执行以上命令会在当前任务里的migrations文件夹下 会在migrations 的文件夹下面生成一个initial.py 文件,将models.py中对象映射成initial.py中的关系
- 执行迁移
python manage.py migrate
效果:执行上一步生成的迁移文件,在对应的数据库中生成了若干个数据表,数目为默认表(7个)和自定义表,自定义表(tables)的表名格式为:任务名_任务中定义的类名
, 如下所示:
注意:
当后期需要重新添加数据表的字段,需要重新执行第第七步,只是不需要重新注册,每次迁移,会生成新的迁移文件,执行迁移的时候,也是只会执行新生成的迁移文件。但是仅仅在models中的某个类里添加修改函数,不需要重新执行第七步。
8、 其他略
注意:
在建立数据库的时候,应当生声明数据库的字符集,“create database Test chartset=utf8”, 因为Mysql数据库字符集默认是Latin,所以当后台往数据库中添加中文信息的时候,会出现错误`1366, "Incorrect string value:,
点击即可查看参考解决方法