KataDoc360
|
2.0/chapter03/#227 |
2009-10-23 10:30:42
|
例如:
|
|
KataDoc360
|
2.0/chapter03/#232 |
2009-10-23 10:32:01
|
在继续我们的第二个视图功能之前,让我停一下去更多了解一下Django是怎么工作的.
|
|
KataDoc360
|
2.0/chapter03/#232 |
2009-10-23 10:32:59
|
在继续我们的第二个视图功能之前,让我们暂停一下去了解更多一些有关Django是怎么工作的知识.
|
|
KataDoc360
|
2.0/chapter03/#233 |
2009-10-23 10:35:11
|
具体地说,当你通过在浏览器里敲http://127.0.0.1:8000/hello/来访问Hello world消息得时候,Django在后台有些什么动作呢?
|
|
KataDoc360
|
2.0/chapter03/#235 |
2009-10-23 10:38:31
|
所有均开始于setting文件。当你运行python manage.py
runserver,脚本将在于manage.py同一个目录下查找名为setting.py的文件。这个文件包含了所有有关这个Django项目的配置信息,均大写:
|
|
KataDoc360
|
2.0/chapter03/#236 |
2009-10-23 10:38:53
|
TEMPLATE_DIRS , DATABASE_NAME
, 等.
|
|
KataDoc360
|
2.0/chapter03/#237 |
2009-10-23 10:41:16
|
最重要的设置时ROOT_URLCONF,它将作为URLconf告诉Django在这个站点中那些Python的模块将被用到
|
|
KataDoc360
|
2.0/chapter03/#239 |
2009-10-23 10:44:35
|
还记得什么时候django-admin.py startproject创建文件settings.py和urls.py吗?自动创建的settings.py包含一个ROOT_URLCONF配置用来指向自动产生的urls.py. 打开文件settings.py你将看到如下:
|
|
KataDoc360
|
2.0/chapter03/#242 |
2009-10-23 10:45:03
|
相应的文件mysite/urls.py
|
|
KataDoc360
|
2.0/chapter03/#247 |
2009-10-23 10:45:47
|
(我们将在后面看到HttpRequest的标准)
|
|
KataDoc360
|
2.0/chapter03/#249 |
2009-10-23 10:57:42
|
正如我们在第一个视图例子里面看到的,一个视图功能必须返回一个HttpResponse。 一旦做完,Django将完成剩余的转换Python的对象到一个合适的带有HTTP头和body的Web Response,(例如,网页内容)。
|
|
KataDoc360
|
2.0/chapter03/#251 |
2009-10-23 10:58:06
|
总的来说:
|
|
KataDoc360
|
2.0/chapter03/#253 |
2009-10-23 10:58:42
|
进来的请求转入/hello/.
|
|
KataDoc360
|
2.0/chapter03/#251 |
2009-10-23 10:58:59
|
总结一下:
|
|
KataDoc360
|
2.0/chapter03/#255 |
2009-10-23 11:00:23
|
Django通过在ROOT_URLCONF配置来决定根URLconf.
|
|
KataDoc360
|
2.0/chapter03/#257 |
2009-10-23 11:01:42
|
Django在URLconf中的所有URL模式中,查找第一个匹配/hello/的条目。
|
|
KataDoc360
|
2.0/chapter03/#259 |
2009-10-23 11:02:19
|
如果找到匹配,将调用相应的视图函数
|
|
KataDoc360
|
2.0/chapter03/#261 |
2009-10-23 11:02:38
|
视图函数返回一个HttpResponse
|
|
KataDoc360
|
2.0/chapter03/#263 |
2009-10-23 11:03:25
|
Django转换HttpResponse为一个适合的HTTP response, 以Web page显示出来
|
|
KataDoc360
|
2.0/chapter03/#271 |
2009-10-23 11:05:30
|
我们的Hello world视图是用来演示基本的Django是如何工作的,但是它不是一个动态网页的例子,因为网页的内容一直是一样的.
|
|
KataDoc360
|
2.0/chapter03/#272 |
2009-10-23 11:06:28
|
每次去查看/hello/,你将会看到相同的内容,它类似一个静态HTML文件。
|
|
KataDoc360
|
2.0/chapter03/#274 |
2009-10-23 11:07:52
|
我们的第二个视图,将更多的放些动态的东西例如当前日期和时间显示在网页上
|
|
KataDoc360
|
2.0/chapter03/#275 |
2009-10-23 11:09:24
|
这将非常好,简单的下一步,因为它不引入了数据库或者任何用户的输入,仅仅是输出显示你的服务器的内部时钟.
|
|
KataDoc360
|
2.0/chapter03/#276 |
2009-10-23 11:11:12
|
它仅仅有限度的比Helloworld刺激一些,但是它将演示一些新的概念
|
|
KataDoc360
|
2.0/chapter03/#278 |
2009-10-23 11:11:34
|
这个视图需要做两件事情:
|
|
KataDoc360
|
2.0/chapter03/#279 |
2009-10-23 11:12:15
|
计算当前日期和时间,并返回包含这些值的HttpResponse
|
|
KataDoc360
|
2.0/chapter03/#280 |
2009-10-23 11:13:19
|
如果你对python很有经验,那肯定知道在python中需要利用datetime模块去计算时间
|
|
KataDoc360
|
2.0/chapter03/#281 |
2009-10-23 11:14:34
|
下面演示如何去使用它:
|
|
KataDoc360
|
2.0/chapter03/#242 |
2009-10-23 11:19:18
|
相对应的文件是mysite/urls.py
|
|
newfish
|
2.0/chapter04/#24 |
2009-10-23 11:19:46
|
模板定义了占位符以及各种用于规范文档该如何显示的各部分基本逻辑(模板标签)
|
|
newfish
|
2.0/chapter04/#25 |
2009-10-23 11:21:21
|
通常,模板用于产生HTML,但是Django的模板也能产生任何基于文本的格式
|
|
jerry li
|
2.0/chapter10/#24 |
2009-10-23 11:43:33
|
对于用ForeignKey字段来定义的关系来说,在关系的另一端也能反向的追溯回来,只不过由于不对称性的关系而稍有不同。
|
|
15325@qq.com
|
2.0/chapter03/#200 |
2009-10-23 11:51:45
|
目前,我们的URLconf只定义了一个单独的URL模式:
|
|
15325@qq.com
|
2.0/chapter03/#205 |
2009-10-23 11:53:37
|
因为你的URL申请在URLconf中没有定义,所以Django显示这条信息。
|
|
15325@qq.com
|
2.0/chapter03/#198 |
2009-10-23 11:55:40
|
关于“404错误”的快速参考
|
|
jerry li
|
2.0/chapter10/#25 |
2009-10-23 11:56:53
|
通过一个<literal> publisher</literal> 对象,直接获取 books ,用 publisher.book_set.all() ,如下:
|
|
jerry li
|
2.0/chapter10/#24 |
2009-10-23 11:57:20
|
对于用<literal> ForeignKey</literal> 来定义的关系来说,在关系的另一端也能反向的追溯回来,只不过由于不对称性的关系而稍有不同。
|
|
15325@qq.com
|
2.0/chapter03/#211 |
2009-10-23 11:58:28
|
这个页面比原始的404错误信息更加实用。
|
|
15325@qq.com
|
2.0/chapter03/#220 |
2009-10-23 11:59:28
|
关于网站根目录的快速参考。
|
|
15325@qq.com
|
2.0/chapter03/#212 |
2009-10-23 12:01:36
|
它同时精确的告诉你Django调用哪个URLconf及其包含的每个模式。
|
|
15325@qq.com
|
2.0/chapter03/#284 |
2009-10-23 12:05:07
|
以上代码很简单,并没有使用Django。
|
|
15325@qq.com
|
2.0/chapter03/#284 |
2009-10-23 12:05:24
|
以上代码很简单,并没有涉及Django。
|
|
15325@qq.com
|
2.0/chapter03/#285 |
2009-10-23 12:06:15
|
它仅仅是Python代码。
|
|
mitnk
|
2.0/chapter07/#105 |
2009-10-23 12:08:04
|
通常,表单开发分为两个部分:
|
|
15325@qq.com
|
2.0/chapter03/#285 |
2009-10-23 12:08:15
|
它仅仅是Python代码。
|
建议放到上一句中,使得语法更加符合我们的习惯。(bs一下西方猴子)
|
jerry li
|
2.0/chapter10/#28 |
2009-10-23 12:09:30
|
实际上,<literal>book_set</literal> 只是一个 <literal>QuerySet</literal>(参考第5章的介绍),所以它可以像<literal>QuerySet</literal>一样,能实现数据过滤和分切,例如:
|
|
mitnk
|
2.0/chapter07/#106 |
2009-10-23 12:10:07
|
前端HTML页面用户接口和后台view函数对所提交数据的处理过程。
|
|
mitnk
|
2.0/chapter07/#107 |
2009-10-23 12:11:31
|
第一部分很简单;现在我们来建立个view来显示一个搜索表单:
|
|
15325@qq.com
|
2.0/chapter03/#286 |
2009-10-23 12:12:45
|
需要强调的是,你应该意识到那些是纯Python代码,哪些是Django特性代码。
|
|
15325@qq.com
|
2.0/chapter03/#286 |
2009-10-23 12:12:56
|
需要强调的是,你应该意识到哪些是纯Python代码,哪些是Django特性代码。
|
|