《Python Web 开发-测试驱动开发》读书笔记(7)

16 篇文章 0 订阅

    6.9

    在6.9.4中有一段代码很令人疑惑,书里解释叫“反向查询”,是Django提供的非常有用的ORM功能,可以再其他表中查询某个对象的相关记录。

    

<table id="id_list_table">
            {% for item in list.item_set.all %}
                <tr><td>{{ forloop.counter }}: {{ item.text }}</td></tr>
            {% endfor %}
        </table>

    中间的item_set其实是一个默认的名字,是一个管理器。在models.py中Item的外键叫list,和List表关联。这个管理器可返回List表实例所对应的Item表的实例。用SQL来表示就是

select *
from Item i
where i.list = 2

    这个管理器的名字默认就是原模型的小写名称加上'_set',可以在设置外键的时候通过related_name参数修改此名称

list = models.ForeignKey(List, default=None, on_delete=models.CASCADE,related_name='litem')

   不过就算不作任何修改,默认的item_set名字也比较通俗易懂。


    6.10

    TDD概念和经验法则

    测试隔离和全局状态

    不同的测试之间不能彼此影响,也就是说每次测试结束后都要还原所做的永久性操作。Django的测试运行程序可以帮助我们创建一个测试数据库,每次测试结束后都会清空数据库

    从一个可运行状态到另一个可运行状态(又叫测试山羊与重构猫)

    本能经常驱使我们直接动手一次修正所有问题,但如果不小心,最终可能像重构猫一样,改动了很多代码但都不起作用。测试山羊建议我们一次只迈一步,从一个可运行状态走到另一个可运行状态

    YAGNI

    "You ain't gonna need it" (你不需要这个) 的简称,劝诫你不要受诱惑编写当时看起来可能有用的代码。很有可能你根本用不到这些代码,或者没有准确预见未来的需求。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值