你可以使用 python manage.py shell
来让 ORM 执行查询以玩耍:
1 | $ python manage.py shell |
如果你使用 MySQL,还可以结合General Log来实时查看 MySQL的 SQL 执行日志以进行验证(Visit 【MySQL】日志记录 for more details)。
最重要的原则: Work at the appropriate level
意思就是说要在对应的 level (M V C) 做对应的事。e.g. 如果计算 court, 在最低的数据库 level 里是最快的(如果只需要知道此记录是否存在的话,用 exists()
会更快)。
但要 注意
: queryset 是 lazy 的,所以有时候在 higher level (例如模板)里控制 queryset 是否真的执行,说不定会更高效。
下面这段代码很好的解释了不同 level 的意思:
1 | # QuerySet operation on the database |