15325@qq.com
|
2.0/chapter07/#397 |
2009-11-23 12:22:24
|
这是一个包含干净的提交数据的字典。
|
|
15325@qq.com
|
2.0/chapter07/#393 |
2009-11-23 12:20:46
|
每一个邦定<literal>Form</literal>实体都有一个<literal>errors</literal>属性,它为你提供了一个字段与错误消息相映射的字典表。
|
|
15325@qq.com
|
2.0/chapter07/#390 |
2009-11-23 12:17:45
|
你可以逐一查看每个字段的出错消息:
|
|
15325@qq.com
|
2.0/chapter07/#387 |
2009-11-23 12:16:05
|
但是,如果留空<literal>subject</literal>或<literal>message</literal>,整个<literal>Form</literal>就不再合法了:
|
|
15325@qq.com
|
2.0/chapter07/#384 |
2009-11-23 12:15:07
|
如果我们不传入<literal>email</literal>值,它依然是合法的。因为我们指定这个字段的属性<literal>required=False</literal>:
|
|
15325@qq.com
|
2.0/chapter07/#381 |
2009-11-23 12:13:36
|
我们已经为每个字段传入了值,因此整个<literal>Form</literal>是合法的:
|
|
15325@qq.com
|
2.0/chapter07/#380 |
2009-11-23 12:11:45
|
调用任何绑定form的<literal>is_valid()</literal>方法,就可以知道它的数据是否合法。
|
|
15325@qq.com
|
2.0/chapter07/#377 |
2009-11-23 12:09:34
|
一旦你对一个<literal>Form</literal>实体赋值,你就得到了一个绑定form:
|
|
15325@qq.com
|
2.0/chapter07/#374 |
2009-11-23 12:08:08
|
为了校验数据,我们创建一个新的对<literal>Form</literal>象,并且传入一个与定义匹配的字典类型数据:
|
|
15325@qq.com
|
2.0/chapter07/#373 |
2009-11-23 12:04:32
|
<literal>Form</literal>对象做的第二件事是校验数据。
|
|
15325@qq.com
|
2.0/chapter07/#358 |
2009-11-23 12:03:57
|
它做的第一件事是将自己显示成HTML:
|
|
old_taoist
|
2.0/chapter03/#91 |
2009-11-23 12:03:14
|
首先,我们从模块 <literal>mysite/views.py</literal> 中引入了 <literal>hello</literal> 视图。(在 Python 的 import 语法中, <literal>mysite/views.py</literal> 转译为 <literal>mysite.views</literal> )
|
|
15325@qq.com
|
2.0/chapter07/#358 |
2009-11-23 12:02:10
|
首先,它将自己显示成HTML:
|
|
15325@qq.com
|
2.0/chapter07/#370 |
2009-11-23 12:00:49
|
你同样可以用HTML显示个别字段:
|
|
15325@qq.com
|
2.0/chapter07/#370 |
2009-11-23 12:00:33
|
你同样可以用HTML显示个别字段。
|
|
old_taoist
|
2.0/chapter03/#89 |
2009-11-23 12:00:12
|
我们改了两处。
|
|
15325@qq.com
|
2.0/chapter07/#369 |
2009-11-23 11:59:42
|
这些类方法只是一般情况下用于快捷显示完整表单的方法。
|
|
15325@qq.com
|
2.0/chapter07/#367 |
2009-11-23 11:57:03
|
请注意,标签<table>、<ul>、<form>的开闭合标记没有包含于输出当中,这样你就可以添加额外的行或者自定义格式。
|
|
old_taoist
|
2.0/chapter03/#83 |
2009-11-23 11:57:01
|
这里是演示如何在我们的 <literal>hello</literal> 视图中挂上 url.
|
|
15325@qq.com
|
2.0/chapter07/#364 |
2009-11-23 11:51:54
|
默认输出按照HTML的<<literal> table</literal> >格式,另外有一些其它格式的输出:
|
|
old_taoist
|
2.0/chapter03/#64 |
2009-11-23 11:49:41
|
默认的URLconf包含了一些被注释起来的Django常用的功能,仅仅只需去掉这些注释就可以开启这些功能.
|
|
15325@qq.com
|
2.0/chapter07/#362 |
2009-11-23 11:47:04
|
这个做法使默认行为尽可能合适。
|
|
old_taoist
|
2.0/chapter03/#55 |
2009-11-23 11:38:22
|
|
|
old_taoist
|
2.0/chapter03/#55 |
2009-11-23 11:37:36
|
<emphasis>URLconf</emphasis> 就像是 一个Django驱动网站的内容表。
|
|
GaRY
|
2.0/chapter15/#249 |
2009-11-23 11:27:52
|
它至少需要两个参数:
|
|
old_taoist
|
2.0/chapter03/#53 |
2009-11-23 11:22:11
|
(继续我们刚才类似发布静态HTML文件的例子。现在我们已经创建了HTML文件,但还没有把它上传至服务器的目录。)为了在Django中绑定视图函数和URL,我们使用一个URLconf。
|
|
old_taoist
|
2.0/chapter03/#46 |
2009-11-23 10:50:31
|
一个视图就仅是一个Python函数,它采用HttpRequest作为它的第一个参数并且返回一个HttpResponse的实例。为了使一个Python的函数成为一个Django视图,它必须干这俩件事。
|
|
old_taoist
|
2.0/chapter03/#43 |
2009-11-23 10:44:36
|
它仅仅返回一个HttpResponse对象,在此仅用文本“Hello world”做了个示范。
|
|
old_taoist
|
2.0/chapter03/#40 |
2009-11-23 10:29:21
|
在下一小节: 你的第一个 URLconf,将聚焦在Django是如何找到这个函数的。
|
|
old_taoist
|
2.0/chapter03/#39 |
2009-11-23 10:28:12
|
在这里我们把它命名为:hello,是因为这个名称清晰的显示了视图的用意。当然,你也可以叫它:hello_wonderful_beautiful_world,或其它类似的啰嗦形式。
|
|
old_taoist
|
2.0/chapter03/#39 |
2009-11-23 10:27:37
|
在这里我们把它命名为:hello,是因为这个名称清晰的显示了视图的用意。同样地,你也可以叫它:hello_wonderful_beautiful_world,或其它类似的啰嗦形式。
|
|
old_taoist
|
2.0/chapter03/#36 |
2009-11-23 10:11:48
|
这是一个包含触发此视图的当前Web请求信息的对象,并且它是<literal>django.http.HttpRequest</literal>类的一个实例。在这个示例中,我们虽然不用<literal>request</literal>做任何事情,但它仍必须是这个视图的第一个参数。
|
|
old_taoist
|
2.0/chapter03/#21 |
2009-11-23 10:03:41
|
在上一章使用<literal>django-admin.py startproject</literal>制作的<literal>mysite</literal>文件夹中,创建一个叫做<literal>views.py</literal>的空文件。这一Python模块将包含本章中我们使用的视图。
|
|
old_taoist
|
2.0/chapter03/#6 |
2009-11-23 09:57:07
|
你的第一个Django驱动的页面:
|
|
fallhunter
|
2.0/chapter10/#124 |
2009-11-22 20:29:39
|
执行ALTER TABLE之后,我们要验证一下修改结果是否正确。启动python并执行下面的代码
|
|
fallhunter
|
2.0/chapter10/#154 |
2009-11-22 20:28:17
|
删除模型
|
|
fallhunter
|
2.0/chapter10/#130 |
2009-11-22 20:27:58
|
删除字段
|
|
fallhunter
|
2.0/chapter10/#122 |
2009-11-22 20:27:22
|
如果你这样做,记得你不要在模型中添加 blank=True 和 null=True 选项
|
|
fallhunter
|
2.0/chapter10/#119 |
2009-11-22 20:26:01
|
例如
|
|
fallhunter
|
2.0/chapter10/#118 |
2009-11-22 20:25:28
|
要想实现这样的效果,你必须先创建 NULL 型的字段,然后将该字段的值填充为某个默认值,然后再将该字段改为 NOT NULL 型。
|
|
fallhunter
|
2.0/chapter10/#117 |
2009-11-22 20:24:06
|
然而,想要添加不能含有空值的字段也是可以的
|
|
fallhunter
|
2.0/chapter10/#115 |
2009-11-22 20:23:24
|
这是因为在我们第一次创建它的时候,这个数据库字段会含有空值。
|
|
fallhunter
|
2.0/chapter10/#114 |
2009-11-22 20:22:32
|
在我们添加字段 num_pages 的时候, 我们使用了 blank=True 和 null=True 选项
|
|
fallhunter
|
2.0/chapter10/#113 |
2009-11-22 20:21:19
|
这里有个微妙之处值得一提
|
|
fallhunter
|
2.0/chapter10/#108 |
2009-11-22 20:19:38
|
接下来,我们要在开发环境上运行数据库客户端,如果是PostgreSQL,运行 psql, 然后,我执行如下语句
|
|
fallhunter
|
2.0/chapter10/#105 |
2009-11-22 20:18:02
|
新加的字段被这样表示:
|
|
fallhunter
|
2.0/chapter10/#102 |
2009-11-22 20:17:35
|
语句的具体内容取决与你所使用的数据库, 大概是这个样子
|
|
fallhunter
|
2.0/chapter10/#101 |
2009-11-22 20:16:40
|
然后,我们运行命令manage.py sqlall books 来查看create table语句
|
|
fallhunter
|
2.0/chapter10/#98 |
2009-11-22 20:13:52
|
(注意
|
|
fallhunter
|
2.0/chapter10/#93 |
2009-11-22 20:00:47
|
重新启动Web server,使修改生效。
|
|