Changelog

全名 页面 提交时间 (Ascending) Unsort 内容 注释 ...
ySJ 2.0/chapter17/#87 2010-04-26 12:48:40 Django将立即返回该 <literal>HttpResponse</literal>
ySJ 2.0/chapter17/#89 2010-04-26 12:49:30 View预处理函数:
ySJ 2.0/chapter17/#92 2010-04-26 12:50:40 这个方法的调用时机是在Django执行完request预处理函数并确定待执行的view之后,但在view函数实际执行之前。
ySJ 2.0/chapter17/#94 2010-04-26 12:51:18 表17-1列出了传入到这个View预处理函数的参数。
ySJ 2.0/chapter17/#97 2010-04-26 12:54:46 表 17-1.
ySJ 2.0/chapter17/#119 2010-04-26 13:00:10 被传入view的关键字参数字典.
ySJ 2.0/chapter17/#121 2010-04-26 13:06:39 <literal>process_request()</literal>一样,<literal>process_view()</literal>应该返回一个<literal>HttpResponse</literal>对象或者返回<literal>None</literal>
ySJ 2.0/chapter17/#128 2010-04-26 13:42:36 Response后处理函数:
ySJ 2.0/chapter17/#135 2010-04-26 13:48:34 这个方法的参数相当直观:
ySJ 2.0/chapter17/#138 2010-04-26 13:52:49 不像可能返回 <literal>None</literal><literal>process_response()</literal>的request和view预处理函数,
ySJ 2.0/chapter17/#139 2010-04-26 13:53:49 <emphasis>必须</emphasis> 返回 <literal>HttpResponse</literal> 对象。
ySJ 2.0/chapter17/#142 2010-04-26 13:54:44 Exception后处理函数:
ySJ 2.0/chapter17/#154 2010-04-26 14:10:03 如果返回 <literal>HttpResponse</literal> 对象, Django 将使用该response对象,而不采用框架内置的异常处理机制。
ySJ 2.0/chapter17/#161 2010-04-26 14:10:39 在Djangos wiki上也可以找到大量的社区贡献的中间件范例:
ySJ 2.0/chapter17/#170 2010-04-26 14:14:15 中间件类:
ySJ 2.0/chapter17/#173 2010-04-26 14:14:37 这个中间件激活认证支持功能。
ySJ 2.0/chapter17/#176 2010-04-26 14:15:04 完整的细节请参见第14章。
ySJ 2.0/chapter17/#185 2010-04-26 14:16:37 <emphasis>禁止对``DISALLOWED_USER_AGENTS`` 列表中设置的user agent访问</emphasis> :一旦提供,这一列表应当由已编译的正则表达式对象组成,这些对象用于匹配传入的request请求头中的user-agent域。
ySJ 2.0/chapter17/#189 2010-04-26 14:18:23 请注意 <literal>import re</literal> ,因为 <literal>DISALLOWED_USER_AGENTS</literal> 要求其值为已编译的正则表达式(也就是 <literal>re.compile()</literal> 的返回值)。设置文件是标准Python格式,所有你完全可以使用<literal>import</literal>语句。
ySJ 2.0/chapter17/#191 2010-04-26 14:39:07 <emphasis>依据 ``APPEND_SLASH`` 和 ``PREPEND_WWW`` 的设置执行URL重写</emphasis> :如果 <literal>APPEND_SLASH</literal><literal>True</literal> , 那些尾部没有斜杠的URL将被重定向到添加了斜杠的相应URL,除非path的最末组成部分包含其他部分。
ySJ 2.0/chapter17/#194 2010-04-26 14:39:53 如果 <literal>PREPEND_WWW</literal> 为 True , 那些缺少先导www.的
ySJ 2.0/chapter17/#195 2010-04-26 14:40:03 URLs将会被重定向到含有先导www.的相应URL上。
ySJ 2.0/chapter17/#199 2010-04-26 14:49:53 技术上来说,URL <literal>example.com/bar</literal><literal>example.com/bar/</literal><literal>www.example.com/bar/</literal> 都互不相同。搜索引擎索引器会把它们区别对待,这样会影响站点在搜索引擎上的排名,所以最好使用正常的URL。
ySJ 2.0/chapter17/#202 2010-04-26 14:54:24 如果 <literal>USE_ETAGS</literal><literal>True</literal> ,Django针对每个请求以MD5算法处理页面内容,从而得到Etag, 在此基础上,Django将在适当情形下处理并返回 <literal>Not Modified</literal> 响应。
ySJ 2.0/chapter17/#204 2010-04-26 14:55:56 请注意,还有一个条件化的 <literal>GET</literal> 中间件, 处理Etags并且还有些别的功能,下面马上就会提及。
ySJ 2.0/chapter17/#212 2010-04-26 14:59:59 这将极大地减少Web服务器消耗的带宽。
ySJ 2.0/chapter17/#215 2010-04-26 15:01:32 比起带宽,人们一般更青睐速度,但是如果你的情形正好相反,尽可启用这个中间件。
ySJ 2.0/chapter17/#224 2010-04-26 15:05:28 <literal>ETag</literal> 的支持依赖于 <literal>USE_ETAGS</literal> 配置及事先在response头中设置 <literal>ETag</literal> 域。
ySJ 2.0/chapter17/#225 2010-04-26 15:06:53 稍前所讨论的通用中间件可用于设置response中的ETag域。
ySJ 2.0/chapter17/#227 2010-04-26 15:12:25 此外,它也将删除所有针对<literal>HEAD</literal>请求的响应内容,并且为所有请求的响应头中设置 <literal>Date</literal><literal>Content-Length</literal> 域。
ySJ 2.0/chapter17/#227 2010-04-26 15:12:31 此外,它也将删除所有针对<literal>HEAD</literal>请求的响应内容,并且为所有请求的响应头设置 <literal>Date</literal><literal>Content-Length</literal> 域。
ySJ 2.0/chapter17/#234 2010-04-26 15:13:19 这是我们在“什么是中间件”这一节中所举的例子。
ySJ 2.0/chapter17/#235 2010-04-26 15:14:11 前面一段。
ySJ 2.0/chapter17/#236 2010-04-26 15:14:55 <literal>request.META['HTTP_X_FORWARDED_FOR']</literal>存在的前提下,它根据其值来设置<literal>request.META['REMOTE_ADDR']</literal>
ySJ 2.0/chapter17/#237 2010-04-26 15:16:30 如果站点位于某个反向代理之后,那么每个request的REMOTE_ADDR都被指向127.0.0.1,在这种情况下,这一功能将非常有用。
ySJ 2.0/chapter17/#239 2010-04-26 15:16:47 危险!
ySJ 2.0/chapter17/#241 2010-04-26 15:18:45 这个中间件并 <emphasis></emphasis> 验证 <literal>HTTP_X_FORWARDED_FOR</literal> 的合法性。
ySJ 2.0/chapter17/#244 2010-04-26 15:19:49 这是任何人都能够伪造 <literal>HTTP_X_FORWARDED_FOR</literal> 值,而 <literal>REMOTE_ADDR</literal> 又是依据 <literal>HTTP_X_FORWARDED_FOR</literal> 来设置,这就意味着任何人都能够伪造IP地址。
ySJ 2.0/chapter17/#246 2010-04-26 15:20:31 只有当能够绝对信任 <literal>HTTP_X_FORWARDED_FOR</literal> 值的时候才能够使用这个中间件。
ySJ 2.0/chapter17/#253 2010-04-26 15:20:47 这个中间件激活会话支持功能。
ySJ 2.0/chapter17/#262 2010-04-26 15:21:15 已在第15章中详细讨论。
ySJ 2.0/chapter17/#277 2010-04-26 15:22:37 关于数据库事务处理的更多信息,请参见附录B。
ySJ 2.0/chapter17/#282 2010-04-26 15:24:28 在下一章<reference name="next chapter" refuri="../chapter18/">next chapter</reference>,我们将讨论如何集成数据库模式等遗留系统,比如你从20世纪八十年代继承下来的数据库模式。
ySJ 2.0/chapter18/#17 2010-04-26 15:29:43 <literal>inspectdb</literal>工具自省你配置文件指向的数据库,针对每一个表生成一个Django模型,然后将这些Python模型的代码显示在系统的标准输出里面。
ySJ 2.0/chapter18/#19 2010-04-26 15:30:06 下面是一个从头开始的针对一个典型的遗留数据库的整合过程。
ySJ 2.0/chapter18/#20 2010-04-26 15:34:27 两个前提条件是安装了Django和一个传统数据库。
ySJ 2.0/chapter18/#26 2010-04-26 15:36:09 具体的说,要提供 <literal>DATABASE_NAME</literal> , <literal>DATABASE_ENGINE</literal> , <literal>DATABASE_USER</literal> , <literal>DATABASE_PASSWORD</literal> , <literal>DATABASE_HOST</literal> , 和 <literal>DATABASE_PORT</literal> 这些配置信息.。
ySJ 2.0/chapter18/#30 2010-04-26 15:36:42 通过运行 <literal>python mysite/manage.py startapp myapp</literal> (这里 <literal>myapp</literal> 是你的应用的名字)创建一个Django应用。
ySJ 2.0/chapter18/#31 2010-04-26 15:36:55 这里我们使用<literal>myapp</literal> 做为应用名。
ySJ 2.0/chapter18/#33 2010-04-26 15:37:59 运行命令 <literal>python mysite/manage.py inspectdb</literal>。这将检查<literal>DATABASE_NAME</literal> 数据库中所有的表并打印出为每张表生成的模型类。
« < 88 89 90 91 92 93 94 > » 96 pages