Changelog

全名 (Ascending) Unsort 页面 提交时间 (Descending) Unsort 内容 注释 ...
ySJ 2.0/chapter05/#733 2010-04-12 17:49:44 为了预防误删除掉某一个表内的所有数据,Django要求在删除表内所有数据时显示使用all()。
ySJ 2.0/chapter05/#718 2010-04-12 17:47:48 以下示例演示如何将所有Publisher的country字段值由'U.S.A'更改为'USA':
ySJ 2.0/chapter05/#682 2010-04-12 17:39:48 类似的,你可以用Python的range-slicing语法来取出数据的特定子集:
ySJ 2.0/chapter05/#676 2010-04-12 17:39:12 你可以使用标准的Python列表裁剪语句:
ySJ 2.0/chapter05/#652 2010-04-12 17:33:16 尽管很灵活,但是每次都要用 <literal>order_by()</literal> 显得有点啰嗦。
ySJ 2.0/chapter05/#636 2010-04-12 17:24:28 在你的 Django 应用中,你或许希望根据某字段的值对检索结果排序,比如说,按字母顺序。
ySJ 2.0/chapter05/#612 2010-04-12 17:17:45 附录C详细描述了所有的查找类型。
ySJ 2.0/chapter05/#611 2010-04-12 17:17:03 其他的一些查找类型有:<literal>icontains</literal>(大小写无关的<literal>LIKE</literal>),<literal>startswith</literal><literal>endswith</literal>, 还有<literal>range</literal>(SQL<literal>BETWEEN</literal>查询)。
ySJ 2.0/chapter05/#611 2010-04-12 17:16:35 其他的一些查找类型有:<literal>icontains</literal>(大小写无关的<literal>LIKE</literal>),&<literal>startswith</literal><literal>endswith</literal>, 还有<literal>range</literal>(SQL<literal>BETWEEN</literal>查询)。
ySJ 2.0/chapter05/#611 2010-04-12 15:33:05 其他的一些查找类型有:<literal>icontains</literal>(大小写无关的<literal>LIKE</literal>),&<literal>startswith</literal><literal>endswith</literal>, 还有<literal>range</literal>(SQL<literal>BETWEEN</literal>查询)。
ySJ 2.0/chapter05/#611 2010-04-12 15:31:48 其他的一些查找类型有:<literal>icontains</literal>(大小写无关的<literal>LIKE</literal>),&<literal>startswith</literal><literal>endswith</literal>, 还有<literal>range</literal>(SQL<literal>BETWEEN</literal>查询)。
ySJ 2.0/chapter05/#608 2010-04-12 15:30:14 <emphasis>name</emphasis><literal>contains</literal> 之间有双下划线。和Python一样,Django也使用双下划线来表明会进行一些魔术般的操作。这里,<literal>contains</literal>部分会被Django翻译成<literal>LIKE</literal>语句:
ySJ 2.0/chapter05/#608 2010-04-12 15:29:52 <emphasis>name</emphasis><literal>contains</literal> 之间有双下划线。和Python一样,Django也使用双下划线来表明会进行一些魔术般的操作。这里,<literal>contains</literal>部分会被Django翻译成<literal>LIKE</literal>语句。
ySJ 2.0/chapter05/#605 2010-04-12 15:24:47 其他类型的查找也可以使用:
ySJ 2.0/chapter05/#600 2010-04-12 15:22:16 多个参数会被转换成 <literal>AND</literal> SQL从句,
ySJ 2.0/chapter05/#578 2010-04-12 15:20:16 所有的模型都自动拥有一个 <literal>objects</literal> 管理器;你可以在想要查找数据时使用它。
ySJ 2.0/chapter05/#583 2010-04-12 15:17:46 现在,我们就先当它是一个仿真列表对象好了。
ySJ 2.0/chapter05/#582 2010-04-12 15:17:25 附录C将详细描述QuerySet。
ySJ 2.0/chapter05/#580 2010-04-12 15:16:45 最后,还有 <literal>all()</literal> 方法。这个方法返回返回数据库中所有的记录。
ySJ 2.0/chapter05/#581 2010-04-12 15:16:09 尽管这个对象 看起来 象一个列表(list),它实际是一个 QuerySet 对象, 这个对象是数据库中一些记录的集合。
ySJ 2.0/chapter05/#580 2010-04-12 15:14:34 最后,还有 <literal>all()</literal> 方法。这个方法返回返回数据库中所有的行。
ySJ 2.0/chapter05/#574 2010-04-12 15:13:00 然后,是<literal>objects</literal>属性。
ySJ 2.0/chapter05/#563 2010-04-12 15:04:55 设计的时候就是这样:
ySJ 2.0/chapter05/#565 2010-04-12 15:03:39 明言胜于暗示。
ySJ 2.0/chapter05/#548 2010-04-12 15:01:55 请参阅后面的“更新多个对象”小节以了解如何实现这种轻量的修改(只修改对象的部分字段)。
ySJ 2.0/chapter05/#548 2010-04-12 15:01:37 请参阅后面的“更新多个对象”小节以了解如何执行这种轻量的修改(只修改对象的部分字段)。
ySJ 2.0/chapter05/#546 2010-04-12 14:57:42 注意,并不是只更新修改过的那个字段,所有的字段都会被更新。
ySJ 2.0/chapter05/#547 2010-04-12 14:56:20 这个操作有可能引起竞态条件,这取决于你的应用程序。
ySJ 2.0/chapter05/#519 2010-04-12 14:51:07 最后, <literal>__unicode__()</literal> 也是一个很好的例子来演示我们怎么添加 <emphasis>行为</emphasis> 到模型里。
ySJ 2.0/chapter05/#514 2010-04-12 14:50:18 为了让我们的修改生效,先退出Python Shell,然后再次运行 <literal>python manage.py shell</literal> 进入。(这是保证代码修改生效的最简单方法。)现在<literal> Publisher</literal>对象列表容易理解多了。
ySJ 2.0/chapter05/#512 2010-04-12 14:47:49 这是一个很好的起点:http://www.joelonsoftware.com/articles/Unicode.html。
ySJ 2.0/chapter05/#498 2010-04-12 14:39:46 如果你把奇特的字符(其它任何超出标准128个如0-9和A-Z之类的ASCII字符)保存在一个普通的Python字符串里,你一定要跟踪你的字符串是用什么编码的,否则这些奇特的字符可能会在显示或者打印的时候出现乱码。
ySJ 2.0/chapter05/#497 2010-04-12 14:38:16 普通的python字符串是经过<emphasis>编码</emphasis>的,意思就是它们使用了某种编码方式(如ASCII,ISO-8859-1或者UTF-8)来编码。
ySJ 2.0/chapter05/#495 2010-04-12 14:37:20 你可以认为unicode对象就是一个Python字符串,它可以处理上百万不同类别的字符——从古老版本的Latin字符到非Latin字符,再到曲折的引用和艰涩的符号。
ySJ 2.0/chapter05/#485 2010-04-12 13:56:32 <literal>Publisher</literal><literal>Book</literal>对象的<literal>__unicode__()</literal>方法简单地返回各自的名称和标题,<literal>Author</literal>对象的<literal>__unicode__()</literal>方法则稍微复杂一些,它将<literal>first_name</literal><literal>last_name</literal>字段值以空格连接后再返回。
ySJ 2.0/chapter05/#484 2010-04-12 13:47:34 就象你看到的一样, <literal>__unicode__()</literal> 方法可以进行任何处理来返回对一个对象的字符串表示。
ySJ 2.0/chapter05/#481 2010-04-12 13:45:54 为以上三个模型添加<literal>__unicode__()</literal>方法后,就可以看到效果了:
ySJ 2.0/chapter05/#476 2010-04-12 13:44:20 当我们打印整个publisher列表时,我们没有得到想要的有用信息,无法把<literal></literal>对象区分开来:
ySJ 2.0/chapter05/#480 2010-04-12 13:42:44 <literal>__unicode__()</literal> 方法告诉Python如何将对象以unicode的方式显示出来。
ySJ 2.0/chapter05/#479 2010-04-12 13:41:31 我们可以简单解决这个问题,只需要为<literal>Publisher</literal> 对象添加一个方法 <literal>__unicode__()</literal>
ySJ 2.0/chapter05/#472 2010-04-12 13:39:43 当然,你肯定想执行更多的Django数据库API试试看,不过,还是让我们先解决一点烦人的小问题。
ySJ 2.0/chapter05/#440 2010-04-12 13:33:03 你可以手动启动命令行客户端(例如,执行PostgreSQL的<literal> psql</literal> 命令),也可以执行 <literal> python manage.py dbshell</literal> ,这个命令将依据<literal> DATABASE_SERVER</literal> 的里设置自动检测使用哪种命令行客户端。
ySJ 2.0/chapter05/#437 2010-04-12 13:30:44 如果你再次运行 <literal>python manage.py syncdb</literal> ,什么也没发生,因为你没有添加新的模型或者 添加新的app。因此,运行<literal>python manage.py syncdb</literal>总是安全的,因为它不会重复执行SQL语句。
ySJ 2.0/chapter05/#435 2010-04-12 13:27:24 (更多内容请查看本章最后的“修改数据库的架构”一段。)
ySJ 2.0/chapter05/#434 2010-04-12 13:23:52 需要注意的是, <literal>syncdb</literal><emphasis>不能</emphasis>将模型的修改或删除同步到数据库;如果你修改或删除了一个模型,并想把它提交到数据库,<literal>syncdb</literal>并不会做出任何处理。
ySJ 2.0/chapter05/#425 2010-04-12 13:18:59 如果你想这么做的话,你可以把那些SQL语句复制到你的数据库客户端执行,或者通过Unix管道直接进行操作(例如,<literal> python manager.py sqlall books | psql mydb</literal> )。不过,Django提供了一种更为简易的提交SQL语句至数据库的方法:
ySJ 2.0/chapter05/#424 2010-04-12 13:17:24 <literal>sqlall</literal> 命令并没有在数据库中真正创建数据表,只是把SQL语句段打印出来,这样你可以看到Django究竟会做些什么。
ySJ 2.0/chapter05/#422 2010-04-12 13:15:50 例子中的输出是基于PostgreSQL语法的。
ySJ 2.0/chapter05/#421 2010-04-12 13:15:00 同样的,字段名称也是自动处理(例如单引号还好是双引号)。
ySJ 2.0/chapter05/#420 2010-04-12 13:14:14 这些 <literal>CREATE TABLE</literal> 语句会根据你的数据库而作调整,这样象数据库特定的一些字段例如:<literal></literal>(MySQL),<literal></literal>(PostgreSQL),<literal></literal>(SQLite),都会自动生成。
« < 87 88 89 90 91 92 93 > » 96 pages