5.5.0Django ORM
这一章节作者主要是讲述有关 models
ORM 对象关系映射器 : 一个数据抽象层,描述存储于数据库中的,行和列。使用面向对象的思想去操纵数据
ORM :类对应 表 属性对应列 类的单个实例 表示数据库中 一行数据。
Django 对 Orm 提供了很好 的支持,现在在单元测试中使用ORM
在tests导入models 中创建的 表类
然后 创建一个新 对象,为对象赋值,调用.save()函数。调用.all()查询,
保存自己输入的数据后,使用.all()方法进行查询 然后进行断言检测
from lists.models import Item
class ItemModelTest(TestCase):
def test_saving_and_retring_items(self):
first_item = Item()
first_item.text = "The first item list"
first_item.save()
second_item = Item()
second_item.text = 'Item the second'
second_item.save
saved_items = Item.objects.all()
self.assertEqual(saved_items.count(),2)
first_saved_item = saved_items[0]
second_saved_item = saved_items[1]
self.assertEqual(first_saved_item.text,'The first item list')
self.assertEqual(second_saved_item.text ,'Item the second')
不出意外的一个结果 提示我们MODELS 中没有查找到ITEM
那就去创建他
cd lists
vi models.py
from django.db import models
class Item(object):
pass
运行:
提示这个类没有这个方法
为了让他具备save 方法 让他继承 Model 类
class Item(models.Model):
pass
结果: 提示一个数据库错误还是没有这个 表
5.5.1 数据库迁移
这是必然的在Django 中当创建了数据库模型之后需要进行迁移,通过迁移提交通过模型对数据库 的改动
python manage.py makemigrations 迁移命令
我们的表创建成功了
运行测试
结果1 !2
接下来创建保存我们的表
class Item(models.Model):
text = models.TextField(default=" ")
结果当然是
在这一章节主要是讲述了
使用测试推动models 的建立
Django 对数据库的orm 管理