ySJ
|
2.0/chapter13/#220 |
2010-04-21 14:06:13
|
这是一个简单的返回指定博客最新五条记录的feed。
|
|
ySJ
|
2.0/chapter13/#216 |
2010-04-21 14:02:09
|
Feed类必须继承django.contrib.syndication.feeds.Feed,它们可以位于你代码树的任何位置。
|
|
ySJ
|
2.0/chapter13/#214 |
2010-04-21 14:00:53
|
一个feed可能是简单的 (例如一个站点新闻feed,或者最基本的,显示一个blog的最新条目),也可能更加复杂(例如一个显示blog某一类别下所有条目的feed)。
|
|
ySJ
|
2.0/chapter13/#214 |
2010-04-21 14:00:40
|
一个feed可能是简单的 (例如一个站点新闻feed,或者最基本的,显示一个blog的最新条目),也可能更加复杂(例如一个显示blog某一类别下所有条目的feed。)
|
|
ySJ
|
2.0/chapter13/#213 |
2010-04-21 13:59:01
|
一个 <literal>Feed</literal> 类是一个简单的python类,用来表示一个聚合feed。
|
|
ySJ
|
2.0/chapter13/#211 |
2010-04-21 13:57:38
|
以上的设定完成之后,接下来需要自己定义 <literal>Feed</literal> 类。
|
|
ySJ
|
2.0/chapter13/#202 |
2010-04-21 13:55:20
|
这里是一个完整的例子。
|
|
ySJ
|
2.0/chapter13/#200 |
2010-04-21 13:55:06
|
特别的,feed_dict应该是一个映射feed的slug(简短URL标签)的字典。
|
|
ySJ
|
2.0/chapter13/#201 |
2010-04-21 13:53:23
|
你可以自定义<literal>feed_dict</literal>。
|
|
ySJ
|
2.0/chapter13/#197 |
2010-04-21 13:52:30
|
{'feed_dict':
|
|
ySJ
|
2.0/chapter13/#196 |
2010-04-21 13:52:03
|
URLConf里有一个额外参数:
|
|
ySJ
|
2.0/chapter13/#194 |
2010-04-21 13:51:32
|
这一行告诉Django使用RSS框架处理所有的以 <literal>"feeds/"</literal> 开头的URL。 ( 你可以修改 <literal>"feeds/"</literal> 前缀以满足您自己的要求.。)
|
|
ySJ
|
2.0/chapter13/#187 |
2010-04-21 13:50:26
|
要创建一个 sitemap,你只需要写一个 <literal>Feed</literal> 类然后配置你的URLconf指向它。
|
|
ySJ
|
2.0/chapter13/#185 |
2010-04-21 13:49:57
|
Django使用URL的其它部分(在/feeds/之后的任何东西)来决定输出哪个feed。
|
|
ySJ
|
2.0/chapter13/#184 |
2010-04-21 13:49:34
|
高级feed生成框架是一个默认绑定到/feeds/的视图。
|
|
ySJ
|
2.0/chapter13/#181 |
2010-04-21 13:48:29
|
想创建一个聚合源(syndication feed),所需要做的只是写一个简短的Python类。
|
|
ySJ
|
2.0/chapter13/#181 |
2010-04-21 13:48:17
|
想创建一个联合供稿的源(syndication feed),所需要做的只是写一个简短的Python类。
|
|
ySJ
|
2.0/chapter13/#166 |
2010-04-21 13:46:54
|
可选的范围很大。
|
|
ySJ
|
2.0/chapter13/#149 |
2010-04-21 13:41:48
|
下面介绍的是一些其它的想法和一些可以用以实现它们的库。
|
|
ySJ
|
2.0/chapter13/#148 |
2010-04-21 13:41:34
|
使用 Python 可以生成许多其它类型的内容。
|
|
ySJ
|
2.0/chapter13/#129 |
2010-04-21 13:38:16
|
如果忽略了这个参数,浏览器可能会把这个文件看成 HTML 文档,这会使浏览器的窗口中出现很奇怪的文字。
|
|
ySJ
|
2.0/chapter13/#128 |
2010-04-21 13:37:57
|
这会通知浏览器文档时PDF文件而不是HTML文件。
|
|
ySJ
|
2.0/chapter13/#109 |
2010-04-21 13:34:25
|
比如,如果使用Ubuntu 发行版,只需要简单的 <literal>apt-get install python-reportlab</literal> 一行命令即可完成安装。
|
|
ySJ
|
2.0/chapter13/#104 |
2010-04-21 13:33:26
|
注意
|
|
ySJ
|
2.0/chapter13/#102 |
2010-04-21 13:33:16
|
只需从<reference name="http://www.reportlab.org/downloads.html" refuri="http://www.reportlab.org/downloads.html">http://www.reportlab.org/downloads.html</reference>下载然后安装。
|
|
ySJ
|
2.0/chapter13/#102 |
2010-04-21 13:33:06
|
只需从<reference name="http://www.reportlab.org/downloads.html" refuri="http://www.reportlab.org/downloads.html">http://www.reportlab.org/downloads.html</reference>下载并且安装。
|
|
ySJ
|
2.0/chapter13/#101 |
2010-04-21 13:32:18
|
很简单:
|
|
ySJ
|
2.0/chapter13/#94 |
2010-04-21 13:31:45
|
动态生成 PDF 文件的好处是,在不同的情况下,根据不同的用户或者不同的内容,可以按需生成不同的 PDF 文件。
|
|
ySJ
|
2.0/chapter13/#93 |
2010-04-21 13:30:47
|
你可以方便的使用 Python 和 Django 生成 PDF 文档,这要归功于一个出色的开源库, ReportLab (<reference name="http://www.reportlab.org/rl_toolkit.html" refuri="http://www.reportlab.org/rl_toolkit.html">http://www.reportlab.org/rl_toolkit.html</reference>) 。
|
|
ySJ
|
2.0/chapter13/#91 |
2010-04-21 13:29:56
|
你可以把PDF文档理解为可打印文档的数字表达形式,而事实上,大多数分发文档采用PDF格式也就是为了打印。
|
|
ySJ
|
2.0/chapter13/#90 |
2010-04-21 13:26:17
|
便携文档格式 (PDF) 是由 Adobe 开发的格式,主要用于呈现可打印的文档,其中包含有 pixel-perfect 格式,嵌入字体以及2D矢量图像。
|
|
ySJ
|
2.0/chapter13/#86 |
2010-04-21 13:25:43
|
下面是一些其它的例子。
|
|
ySJ
|
2.0/chapter13/#84 |
2010-04-21 13:25:32
|
创建一个 <literal>HttpResponse</literal> 响应对象(需要指定特殊的 MIME 类型),它它传给需要处理文件的函数,然后返回这个响应对象。
|
|
ySJ
|
2.0/chapter13/#76 |
2010-04-21 13:20:21
|
只需将 <literal>response</literal> 作为第一个变量传递给 <literal>csv.writer</literal> 。 <literal>csv.writer</literal> 函数需要一个文件类的对象, <literal>HttpResponse</literal> 正好能达成这个目的。
|
|
ySJ
|
2.0/chapter13/#73 |
2010-04-21 13:15:58
|
要在<literal>HttpResponse</literal>指定头部信息,只需把<literal>HttpResponse</literal>当做字典使用就可以了。
|
|
ySJ
|
2.0/chapter13/#71 |
2010-04-21 13:13:50
|
它会显示在浏览器的另存为对话框中。
|
|
ySJ
|
2.0/chapter13/#70 |
2010-04-21 13:13:33
|
这个文件名是任意的。
|
|
ySJ
|
2.0/chapter13/#57 |
2010-04-21 13:11:02
|
CSV格式尽管看起来简单,却是全球通用的。
|
|
ySJ
|
2.0/chapter13/#55 |
2010-04-21 13:09:17
|
联邦航空管理局。
|
|
ySJ
|
2.0/chapter13/#54 |
2010-04-21 13:08:55
|
这些数据来自美国
|
|
ySJ
|
2.0/chapter13/#54 |
2010-04-21 13:08:28
|
这些数据来自美国。
|
|
ySJ
|
2.0/chapter13/#53 |
2010-04-21 13:08:11
|
前面的列表包含真实数据。
|
|
ySJ
|
2.0/chapter13/#48 |
2010-04-21 13:07:29
|
它主要是由一系列的表格行组成,每行中单元格之间使用逗号(CSV 是 <emphasis>逗号分隔数值(comma-separated values)</emphasis> 的缩写)隔开。例如,下面是CSV格式的“不守规矩”的飞机乘客表。
|
|
ySJ
|
2.0/chapter13/#40 |
2010-04-21 12:55:59
|
另外我们必须了解的是<literal>HttpResponse</literal>对象实现了Python标准的文件应用程序接口(API)。
|
|
ySJ
|
2.0/chapter13/#38 |
2010-04-21 12:53:27
|
如果改变 <literal>open()</literal> 中的图片路径为一张真实图片的路径,那么就可以使用这个十分简单的视图来提供一张图片,并且浏览器可以正确显示它。
|
|
ySJ
|
2.0/chapter13/#31 |
2010-04-21 12:45:16
|
通过改变 MIME 类型,我们可以通知浏览器将要返回的数据是另一种类型。
|
|
ySJ
|
2.0/chapter13/#21 |
2010-04-21 12:43:54
|
回顾一下第三章,视图函数只是一个以Web请求为参数并返回Web响应的Python函数。
|
|
ySJ
|
2.0/chapter13/#19 |
2010-04-21 12:35:39
|
视图和MIME类型
|
|
ySJ
|
2.0/chapter13/#18 |
2010-04-21 12:35:10
|
基础:
|
|
ySJ
|
2.0/chapter12/#606 |
2010-04-21 11:25:19
|
大量的可抢占式的高速缓存通常是一个站点在大流量下正常工作的唯一方法。
|
|