| 
    
    
      | 
     2.0/chapter02/#332 | 
     
 2010-01-10 04:16:01 
 | 
     
 好了,你已经安装好一切所需, 并且开发服务器也运行起来了,你已作好了准备可以继续 <reference name="learn the basics" refuri="../chapter03/">学习基础知识---用Django伺候网頁</reference> , 这一章的内容。
 | 
      | 
    
    
      | 
     2.0/chapter10/#268 | 
     
 2010-01-05 17:10:28 
 | 
     
 然后这样使用:
 | 
      | 
    
    
      | 
     2.0/chapter10/#265 | 
     
 2010-01-05 17:09:40 
 | 
     
 比如,上面的例子可以被整合成一个自定义manager方法就像这样:
 | 
      | 
    
    
      | 
     2.0/chapter10/#264 | 
     
 2010-01-05 17:08:38 
 | 
     
 更不要把你的视图代码和django.db.connection语句混杂在一起,把它们放在自定义模型或者自定义manager方法中是个不错的主意.
 | 
      | 
    
    
      | 
     2.0/chapter10/#262 | 
     
 2010-01-05 17:06:05 
 | 
     
 如果你使用了这个技术,数据库后的基础库将会自动添加引用同时尽可能的转意你的参数.
 | 
      | 
    
    
      | 
     2.0/chapter10/#261 | 
     
 2010-01-05 17:03:51 
 | 
     
 如果你对Python DB-API不熟悉,请注意在SQL语句cursor.execute()使用"%s",而不要在SQL内试图立刻添加一个参数.
 | 
      | 
    
    
      | 
     2.0/chapter10/#260 | 
     
 2010-01-05 17:00:23 
 | 
     
 connection和curso可以最大程度的实现标准Python DB-API,你可以在http://www.python.org/peps/pep-0249.html了解它.
 | 
      | 
    
    
      | 
     2.0/chapter10/#257 | 
     
 2010-01-05 16:58:34 
 | 
     
 例如:
 | 
      | 
    
    
      | 
     2.0/chapter10/#256 | 
     
 2010-01-05 16:58:24 
 | 
     
 然后,使用cursor.execute(sql, [params])来执行SQL语句和cursor.fetchone()或者cursor.fetchall(),返回记录集.
 | 
      | 
    
    
      | 
     2.0/chapter10/#255 | 
     
 2010-01-05 16:57:08 
 | 
     
 使用它,通过connection.cursor()可以得到一个游标对像.
 | 
      | 
    
    
      | 
     2.0/chapter10/#255 | 
     
 2010-01-05 16:56:56 
 | 
     
 使用它,通过connection.cursor()可以得到一个游标对像
 | 
      | 
    
    
      | 
     2.0/chapter10/#254 | 
     
 2010-01-05 16:56:02 
 | 
     
 你可以通过导入django.db.connection对像来轻松实现,它代表当前数据库连接.
 | 
      | 
    
    
      | 
     2.0/chapter10/#253 | 
     
 2010-01-05 16:54:54 
 | 
     
 有时候你会发现django数据库api带给你的也只有这么多,那你可以为你的数据库写一些自定义SQL查询.
 | 
      | 
    
    
      | 
     2.0/chapter10/#251 | 
     
 2010-01-05 16:53:31 
 | 
     
 执行,行SQL查询.
 | 
      | 
    
    
      | 
     2.0/chapter10/#248 | 
     
 2010-01-05 16:53:04 
 | 
     
 在这演示例子的用法.
 | 
      | 
    
    
      | 
     2.0/chapter10/#246 | 
     
 2010-01-05 16:52:16 
 | 
     
 想了解更多property请到http://www.python.org/download/releases/2.2/descrintro/#property
 | 
      | 
    
    
      | 
     2.0/chapter10/#245 | 
     
 2010-01-05 16:51:40 
 | 
     
 例子中的最后一个方法是一个property.
 | 
      | 
    
    
      | 
     2.0/chapter10/#242 | 
     
 2010-01-05 16:50:24 
 | 
     
 这个模型有一些自定义方法.
 | 
      | 
    
    
      | 
     2.0/chapter10/#241 | 
     
 2010-01-05 16:49:55 
 | 
     
 一个例子是阐述它的最简单途径.
 | 
      | 
    
    
      | 
     2.0/chapter10/#239 | 
     
 2010-01-05 16:49:25 
 | 
     
 在模型的同一处保持事务逻辑是一项有价值的技术.
 | 
      | 
    
    
      | 
     2.0/chapter10/#237 | 
     
 2010-01-05 16:48:11 
 | 
     
 有鉴于manager经常被用来用一些table-wide的事情,模型方法应该只对特殊模型实例起作用.
 | 
      | 
    
    
      | 
     2.0/chapter10/#236 | 
     
 2010-01-05 16:46:43 
 | 
     
 为了给你的对像添加一个行级功能,那就定义一个自定义方法.
 | 
      | 
    
    
      | 
     2.0/chapter10/#234 | 
     
 2010-01-05 16:42:49 
 | 
     
 模型方法
 | 
      | 
    
    
      | 
     2.0/chapter10/#232 | 
     
 2010-01-05 16:42:29 
 | 
     
 结论是,你通常要小心的选择你的默认manager.由于覆盖get_query_set(),你可能接受到一个无用的返回对像,你必须避免这种情况.
 | 
      | 
    
    
      | 
     2.0/chapter10/#231 | 
     
 2010-01-05 16:37:09 
 | 
     
 Django将会把第一个manager定义为默认manager,Django的许多部分(但是不包括admin应用)将会明确的为模型使用这个manager.
 | 
      | 
    
    
      | 
     2.0/chapter10/#230 | 
     
 2010-01-05 16:33:28 
 | 
     
 如果你自定义了Manager对像.请注意,第一个Manager(它在模型中被定义的位置)会有一个特殊状态.
 | 
      |