3 index应用数据库迁移
上面我们创建好了 index 应用所需的数据表,下一步就是执行数据库的迁移,之后让我们再来看一下又有什么新的变化发生呢?数据库迁移的两个命令分步骤执行,如下所示:
python manage.py makemigrations python manage.py migrate
执行完毕后会在命令行得到如下输出:
若迁移过程中出现报错提示,首先检查您的 models.py 文件是否正确书写,除此之外,也可能由于 Django 与 MySQL 版本问题导致报错。
从上述输出结果可以看出,我们对 index 应用进行了数据库迁移工作。
并且在数据库中创建了三张表,分别是 Author、Book、UserInfo。
而且在 index 应用下的 migrations 目录下生还成了一个 0001_initial.py 的文件:
这个迁移文件包含了创建数据表时用到的所有信息,这是一个临时的过度文件。
4 魔术方法__str__
__str__方法是 Python 中的 "魔术” 方法,它是为 print 这样的打印函数设计的,它属于 python 的 object 基类的一个方法,也就是说 python 所有的类都有该方法,当然 Django 的 modle 类也有。如果没有这个方法定义,打印对象会显示对象的内存地址,但是这样的显示方式不够友好,且不利于调试,而用 __str__ 方法后,可以在 print 时得到易于人阅读的信息,在如下所示:
# 直接print打印 class TestClass: def __init__(self): self.name = 'testcase' t = TestClass() #实例化对象 print(t) # 结果显示:<__main__.TestClass object at 0x8f5c27b42367> # __str__方法 class TestClass: def __init__(self): self.name = '小明' def __str__(self): return self.name t = TestClass() #实例化对象 print(t) # 结果显示:小明
本节内容为 index 应用创建了数据表,并且一步步带领大家实现了如何自定义模型类以及完成了数据表的迁移的,而且对产生的迁移文件也做了介绍,接下来我们将学习 Django 的后台管理系统,看看它是如何配合 ORM 使用的。