Changelog

全名 页面 提交时间 (Descending) Unsort 内容 注释 ...
15325@qq.com 2.0/chapter03/#456 2009-10-23 16:55:29 请留意:如果你在一个不能转换成整数类型的值上调用int(),Python将抛出一个ValueError异常。如:int('foo')。在这个例子中,如果我们遇到ValueError异常,我们将转为抛出django.http.Http404异常——正如你想象的那样:最终显示404页面(提示信息:页面不存在)。
15325@qq.com 2.0/chapter03/#448 2009-10-23 16:46:41 (从技术上来说,捕获值总是Unicode objects,而不是简单的Python字节串,但目前不需要担心这些差别。)
15325@qq.com 2.0/chapter03/#446 2009-10-23 16:43:51 例如:如果请求URL是/time/plus/3/,那么offset将会是3;如果请求URL是/time/plus/21/,那么offset将会是21。请注意:捕获值永远都是字符串(string)类型,而不会是整数(integer)类型,即使这个字符串全由数字构成(如:“21”)。
15325@qq.com 2.0/chapter03/#446 2009-10-23 16:43:06 例如:如果请求URL是/time/plus/3/,那么offset将会是3;如果请求URL是/time/plus/21/,那么offset将会是21。请注意:捕获值永远都是字符串(string)类型,而不会是整数(integer)类型,即使这个字符串全由数字构成。
15325@qq.com 2.0/chapter03/#437 2009-10-23 16:37:00 让我们逐行分析一下代码:
15325@qq.com 2.0/chapter03/#434 2009-10-23 16:36:20 以下是view代码:
15325@qq.com 2.0/chapter03/#421 2009-10-23 16:35:21 嗯,怎么说呢,每个开发者是不一样的。
15325@qq.com 2.0/chapter03/#421 2009-10-23 16:33:32 嗯,每个开发者都是不同的。
15325@qq.com 2.0/chapter03/#418 2009-10-23 16:32:49 这个例子中,我们先写了URLpattern ,然后是视图,但是在前面的例子中, 我们先写了视图,然后是URLpattern 。
15325@qq.com 2.0/chapter03/#419 2009-10-23 16:32:19 哪一种方式比较好?
15325@qq.com 2.0/chapter03/#411 2009-10-23 16:31:33 最终的URLconf包含上面两个视图,如:
15325@qq.com 2.0/chapter03/#402 2009-10-23 16:29:30 从现在开始,本文所有URL模式都用原始字符串。
15325@qq.com 2.0/chapter03/#401 2009-10-23 16:27:14 当你用r把它标示为一个原始字符串后,Python不再视其中的反斜杠为转义字符。也就是说,“\n”是两个字符串:“\”和“n”。由于反斜杠在Python代码和正则表达式中有冲突,因此建议你在Python定义正则表达式时都使用原始字符串。
15325@qq.com 2.0/chapter03/#400 2009-10-23 16:17:18 在普通Python字符串中,反斜杠用于特殊字符的转义。比如\n转义成一个换行符。
15325@qq.com 2.0/chapter03/#399 2009-10-23 16:14:45 它告诉Python这是个原始字符串,不需要处理里面的反斜杠(转义字符)。
15325@qq.com 2.0/chapter03/#398 2009-10-23 16:11:30 另外一个重点,正则表达式字符串的开头字母“r”。
15325@qq.com 2.0/chapter03/#387 2009-10-23 16:06:55 (见上)
15325@qq.com 2.0/chapter03/#386 2009-10-23 16:06:41 这里使用# ...来表示省略了其它可能存在的URL模式定义。
15325@qq.com 2.0/chapter03/#383 2009-10-23 16:03:15 答案是:使用通配符(wildcard URLpatterns)。正如我们之前提到过,一个URL模式就是一个正则表达式。因此,这里可以使用\d+来匹配1个以上的数字。
15325@qq.com 2.0/chapter03/#383 2009-10-23 16:02:57 答案是:使用通配符(wildcard URLpatterns)。正如我们之前提到的那样,一个URL模式就是一个正则表达式。因此,这里可以使用\d+来匹配1个以上的数字。
15325@qq.com 2.0/chapter03/#382 2009-10-23 16:00:18 那么,我们如何设计程序来处理任意数量的时差?
15325@qq.com 2.0/chapter03/#374 2009-10-23 15:56:30 就像/time/plus?hours=3里面的小时应该在查询字符串中被参数hours指定(问号后面的是参数)。
15325@qq.com 2.0/chapter03/#373 2009-10-23 15:48:05 如果你有其它web平台的开发经验(如PHP或Java),你可能会想:嘿!让我们用查询字符串参数吧!
15325@qq.com 2.0/chapter03/#358 2009-10-23 15:44:45 举个例子,一家在线书店会为每一本书提供一个URL,如:/books/243/、/books/81196/。
15325@qq.com 2.0/chapter03/#353 2009-10-23 15:30:54 第三个视图
15325@qq.com 2.0/chapter03/#350 2009-10-23 15:29:37 URLconf和视图是松耦合的。
15325@qq.com 2.0/chapter03/#347 2009-10-23 15:27:53 这是一个故弄玄虚的例子,但这个方法迟早会用得上。
15325@qq.com 2.0/chapter03/#346 2009-10-23 15:26:01 在这个例子里,current_datetime被两个URL使用。
15325@qq.com 2.0/chapter03/#341 2009-10-23 15:25:12 例如,考虑一下current_datetime视图。
15325@qq.com 2.0/chapter03/#329 2009-10-23 15:24:12 (它必须有个值,它的默认值是Django的诞生地:美国/芝加哥)如果你处在别的时区,你需要在settings.py文件中更改这个值。请参见它里面的注释,以获得最新世界时区列表。
15325@qq.com 2.0/chapter03/#325 2009-10-23 15:18:17 Django时区
15325@qq.com 2.0/chapter03/#328 2009-10-23 15:18:05 这是因为Django是有时区意识的,并且默认时区为America/Chicago。
15325@qq.com 2.0/chapter03/#328 2009-10-23 15:17:50 这是因为Django是有时区意识的,并且默认为America/Chicago。
15325@qq.com 2.0/chapter03/#327 2009-10-23 15:16:02 视乎你的机器,显示的日期与时间可能和实际的相差几个小时。
15325@qq.com 2.0/chapter03/#323 2009-10-23 15:12:48 你将看到当前的日期和时间。
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/#325 2009-10-23 15:08:59 Django时区代码
15325@qq.com 2.0/chapter03/#320 2009-10-23 15:08:01 理解了么?
15325@qq.com 2.0/chapter03/#319 2009-10-23 15:07:06 其次,也是比较重要的:添加URL模式来映射URL中的/time/和新视图。
15325@qq.com 2.0/chapter03/#318 2009-10-23 15:04:36 首先,在顶部导入current_datetime函数;
15325@qq.com 2.0/chapter03/#318 2009-10-23 15:01:33 第一,在顶部导入current_datetime函数;
15325@qq.com 2.0/chapter03/#317 2009-10-23 15:00:12 这里,我们修改了两个地方。
15325@qq.com 2.0/chapter03/#314 2009-10-23 14:59:44 用/time/之类的字眼易于理解:
15325@qq.com 2.0/chapter03/#313 2009-10-23 14:57:24 添加上述代码之后,还要在urls.py中添加URL模式,以告诉Django由哪一个URL来处理这个视图。
15325@qq.com 2.0/chapter03/#311 2009-10-23 14:54:55 最后,正如我们刚才写的hello函数一样,视图返回一个HttpResponse对象,它包含生成的响应。
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/#309 2009-10-23 12:32:28 (目前HTML是有错误的,但我们这样做是为了保持例子的简短。)
15325@qq.com 2.0/chapter03/#302 2009-10-23 12:30:55 在文件顶端,我们添加了一条语句:import datetime。这样就可以计算日期了。
15325@qq.com 2.0/chapter03/#300 2009-10-23 12:29:13 让我们分析一下改动后的views.py:
15325@qq.com 2.0/chapter03/#298 2009-10-23 12:27:41 (见上)
« < 83 84 85 86 87 88 89 > » 96 pages