免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1735 | 回复: 0
打印 上一主题 下一主题

命令行调试整理篇 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-08-16 10:12 |只看该作者 |倒序浏览
目前还不知道怎么在页面级进行调试代码。虽然我安装上了Debug工具条还是不行!
目前的做法是基于manage.py shell 命令行处理的!
现在整理下常用的一些命令如下:
1.比如说我想调试
Models.objects.all()
这样的语句的话怎么办呢?
我一开始的做法是:
p = Models.objects.all()
for ele in p:
   print p['id']
这样是不行的
正确的做法可以参考如下:
>>> queryset = Poll.objects.all()  
  • >>> print [p.headline for p in queryset] # Evaluate the query set.
    当然这里面的headline是这个字段名称的!
    来看下如果我有多个条件的话如何处理
    >>> from servermonitor.serverhardware.models import ServerHardware>>> p1 = ServerHardware.objects.all()>>> print [obj.id for obj in p1][17L, 12L, 13L, 18L, 15L, 16L, 14L]>>> p1 = p1.filter(h_serial__contains='a')>>> print [obj.id for obj in p1][12L, 15L]>>> p1 = p1.filter(h_type__contains='a')>>> print [obj.id for obj in p1][12L]
    {这就证明了我们的写法是正常的呀!}
    每个QuerySet都包含一个缓存,以尽量减少对数据库的访问。理解他的工作原理很重要,可以写出最高效的代码。
    在最新创建的QuerySet里,缓存是空的。在第一次QuerySet
    被取值,因此数据库查询发生,django把查询结果放入缓存,并返回给请求,随后的查询取值会复用缓存中的结果。

    保持缓存的思想习惯,因为如果你不正确使用查询缓存会有麻烦。例如下面例子会创建两个QuerySet
    Python代码
  • >>> print [e.headline for e in Entry.objects.all()]  
  • >>> print [e.pub_date for e in Entry.objects.all()]  >>> print [e.headline for e in Entry.objects.all()]
    >>> print [e.pub_date for e in Entry.objects.all()]
    这样意味着数据库查询会执行两次,实际两次数据库加载
    为了避免这个问题,简单保存QuerySet
    复用
    Python代码
  • >>> queryset = Poll.objects.all()  
  • >>> print [p.headline for p in queryset] # Evaluate the query set.  
  • >>> print [p.pub_date for p in queryset] # Re-use the cache from the evaluation.  
                   
                   
                   

    本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84280/showart_2029136.html
  • 您需要登录后才可以回帖 登录 | 注册

    本版积分规则 发表回复

      

    北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年举报专区
    中国互联网协会会员  联系我们:huangweiwei@itpub.net
    感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP