15325@qq.com
|
2.0/chapter03/#549 |
2009-10-22 16:34:51
|
在演示核心概念时,我们所作的是为了保持简单。但是在现实世界中,这差不多总是个坏主意。
|
|
15325@qq.com
|
2.0/chapter03/#156 |
2009-10-22 16:36:04
|
|
|
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错误”的快速参考
|
|
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代码。
|
|
15325@qq.com
|
2.0/chapter03/#285 |
2009-10-23 12:08:15
|
它仅仅是Python代码。
|
建议放到上一句中,使得语法更加符合我们的习惯。(bs一下西方猴子)
|
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特性代码。
|
|
15325@qq.com
|
2.0/chapter03/#287 |
2009-10-23 12:13:08
|
(见上)
|
|
15325@qq.com
|
2.0/chapter03/#288 |
2009-10-23 12:16:36
|
因为你学习了Django,希望你能将Django的知识应用在那些不一定需要使用Django的项目上。
|
|
15325@qq.com
|
2.0/chapter03/#290 |
2009-10-23 12:19:31
|
为了让Django视图显示当前日期和时间,我们仅需要把语句:datetime.datetime.now()放入视图函数,然后返回一个HttpResponse对象即可。代码如下:
|
|
15325@qq.com
|
2.0/chapter03/#293 |
2009-10-23 12:23:43
|
正如我们的hello函数一样,这个函数也保存在view.py中。为了简洁,上面我们隐藏了hello函数。下面是完整的view.py文件内容:
|
|
15325@qq.com
|
2.0/chapter03/#296 |
2009-10-23 12:25:52
|
(从现在开始,如非必要,本文不再重复列出以前的代码。
|
|
15325@qq.com
|
2.0/chapter03/#296 |
2009-10-23 12:26:04
|
(从现在开始,如非必要,本文不再重复列出先前的代码。
|
|
15325@qq.com
|
2.0/chapter03/#297 |
2009-10-23 12:27:21
|
你应该懂得识别哪些是新代码,哪些是先前的。
|
|
15325@qq.com
|
2.0/chapter03/#297 |
2009-10-23 12:27:30
|
你应该懂得识别哪些是新代码,哪些是先前的。)
|
|
15325@qq.com
|
2.0/chapter03/#298 |
2009-10-23 12:27:41
|
(见上)
|
|
15325@qq.com
|
2.0/chapter03/#300 |
2009-10-23 12:29:13
|
让我们分析一下改动后的views.py:
|
|
15325@qq.com
|
2.0/chapter03/#302 |
2009-10-23 12:30:55
|
在文件顶端,我们添加了一条语句:import datetime。这样就可以计算日期了。
|
|
15325@qq.com
|
2.0/chapter03/#309 |
2009-10-23 12:32:28
|
(目前HTML是有错误的,但我们这样做是为了保持例子的简短。)
|
|
15325@qq.com
|
2.0/chapter03/#307 |
2009-10-23 14:50:18
|
字符串中的%s是占位符,字符串后面的百分号表示用它后面的变量now的值来代替%s。变量%s是一个datetime.datetime对象。它虽然不是一个字符串,但是%s(格式化字符串)会把它转换成字符串,如:2008-12-13
14:09:39.002731。这将导致HTML的输出字符串为:It is now 2008-12-13
14:09:39.002731。
|
|
15325@qq.com
|
2.0/chapter03/#311 |
2009-10-23 14:54:55
|
最后,正如我们刚才写的hello函数一样,视图返回一个HttpResponse对象,它包含生成的响应。
|
|
15325@qq.com
|
2.0/chapter03/#313 |
2009-10-23 14:57:24
|
添加上述代码之后,还要在urls.py中添加URL模式,以告诉Django由哪一个URL来处理这个视图。
|
|
15325@qq.com
|
2.0/chapter03/#314 |
2009-10-23 14:59:44
|
用/time/之类的字眼易于理解:
|
|
15325@qq.com
|
2.0/chapter03/#317 |
2009-10-23 15:00:12
|
这里,我们修改了两个地方。
|
|
15325@qq.com
|
2.0/chapter03/#318 |
2009-10-23 15:01:33
|
第一,在顶部导入current_datetime函数;
|
|
15325@qq.com
|
2.0/chapter03/#318 |
2009-10-23 15:04:36
|
首先,在顶部导入current_datetime函数;
|
|
15325@qq.com
|
2.0/chapter03/#319 |
2009-10-23 15:07:06
|
其次,也是比较重要的:添加URL模式来映射URL中的/time/和新视图。
|
|
15325@qq.com
|
2.0/chapter03/#320 |
2009-10-23 15:08:01
|
理解了么?
|
|
15325@qq.com
|
2.0/chapter03/#325 |
2009-10-23 15:08:59
|
Django时区代码
|
|
15325@qq.com
|
2.0/chapter03/#322 |
2009-10-23 15:12:22
|
写好视图并且更新URLconf之后,运行命令python manage.py runserver以启动服务,在浏览器中输入http://127.0.0.1:8000/time/。
|
|
15325@qq.com
|
2.0/chapter03/#323 |
2009-10-23 15:12:48
|
你将看到当前的日期和时间。
|
|
15325@qq.com
|
2.0/chapter03/#327 |
2009-10-23 15:16:02
|
视乎你的机器,显示的日期与时间可能和实际的相差几个小时。
|
|
15325@qq.com
|
2.0/chapter03/#328 |
2009-10-23 15:17:50
|
这是因为Django是有时区意识的,并且默认为America/Chicago。
|
|
15325@qq.com
|
2.0/chapter03/#328 |
2009-10-23 15:18:05
|
这是因为Django是有时区意识的,并且默认时区为America/Chicago。
|
|
15325@qq.com
|
2.0/chapter03/#325 |
2009-10-23 15:18:17
|
Django时区
|
|
15325@qq.com
|
2.0/chapter03/#329 |
2009-10-23 15:24:12
|
(它必须有个值,它的默认值是Django的诞生地:美国/芝加哥)如果你处在别的时区,你需要在settings.py文件中更改这个值。请参见它里面的注释,以获得最新世界时区列表。
|
|
15325@qq.com
|
2.0/chapter03/#341 |
2009-10-23 15:25:12
|
例如,考虑一下current_datetime视图。
|
|
15325@qq.com
|
2.0/chapter03/#346 |
2009-10-23 15:26:01
|
在这个例子里,current_datetime被两个URL使用。
|
|
15325@qq.com
|
2.0/chapter03/#347 |
2009-10-23 15:27:53
|
这是一个故弄玄虚的例子,但这个方法迟早会用得上。
|
|
15325@qq.com
|
2.0/chapter03/#350 |
2009-10-23 15:29:37
|
URLconf和视图是松耦合的。
|
|
15325@qq.com
|
2.0/chapter03/#353 |
2009-10-23 15:30:54
|
第三个视图
|
|
15325@qq.com
|
2.0/chapter03/#358 |
2009-10-23 15:44:45
|
举个例子,一家在线书店会为每一本书提供一个URL,如:/books/243/、/books/81196/。
|
|
15325@qq.com
|
2.0/chapter03/#373 |
2009-10-23 15:48:05
|
如果你有其它web平台的开发经验(如PHP或Java),你可能会想:嘿!让我们用查询字符串参数吧!
|
|