Changelog

全名 页面 提交时间 (Descending) Unsort 内容 注释 ...
ySJ 2.0/chapter09/#591 2010-04-16 16:46:20 在Python 2.4中,也可以使用装饰器语法:
ySJ 2.0/chapter09/#586 2010-04-16 16:45:47 为了简化这类标签,Django提供了一个帮助函数<literal>simple_tag</literal>。这个函数是<literal>django.template.Library</literal>的一个方法,它接受一个只有一个参数的函数作参数,把它包装在render函数和之前提及过的其他的必要单位中,然后通过模板系统注册标签。
ySJ 2.0/chapter09/#584 2010-04-16 16:37:20 我们给定了一个格式化字符串,然后它返回一个字符串形式的时间。
ySJ 2.0/chapter09/#583 2010-04-16 16:36:47 例如,我们先前写的<literal>current_time</literal>标签就是这样一个例子。
ySJ 2.0/chapter09/#582 2010-04-16 16:36:16 许多模板标签接收单一的字符串参数或者一个模板变量引用,然后独立地根据输入变量和一些其它外部信息进行处理并返回一个字符串。
ySJ 2.0/chapter09/#570 2010-04-16 16:34:42 例如,这个自定义模板标签<literal>{% upper %}</literal>,它会把它自己和<literal>{% endupper %}</literal>之间的内容变成大写:
ySJ 2.0/chapter09/#570 2010-04-16 16:34:33 例如,这个自定义模板标签<literal>{% upper %}</literal>,它会把它自己和<literal>{% endupper %}</literal>之间的内容编程大写:
ySJ 2.0/chapter09/#570 2010-04-16 16:32:13 例如,这个自定义模板标签<literal>{% upper %}</literal>,它会把它自己和<literal>{% endupper %}</literal>之间的内容首字母大写:
ySJ 2.0/chapter09/#568 2010-04-16 16:30:36 在前一个例子中, <literal>do_comment()</literal> 抛弃了<literal>{% comment %}</literal><literal>{% endcomment %}</literal> 之间的所有内容。当然也可以修改和利用下标签之间的这些内容。
ySJ 2.0/chapter09/#566 2010-04-16 16:28:16 分析直至另外一个模板标签并保存内容
ySJ 2.0/chapter09/#557 2010-04-16 16:26:43 它返回一个<literal>django.template.NodeList</literal>实例,它是一个包含了所有<emphasis>Node</emphasis>对象的列表,这些对象是解析器在解析到任一元组中指定的标签之前遇到的内容.
ySJ 2.0/chapter09/#556 2010-04-16 16:22:35 <literal>parser.parse()</literal> 接收一个包含了需要分析的模板标签名的元组作为参数。
ySJ 2.0/chapter09/#548 2010-04-16 16:19:31 分析直至另一个模板标签
ySJ 2.0/chapter09/#529 2010-04-16 16:10:42 (我们把创建函数<literal>do_current_time2</literal>和注册给<literal>current_time2</literal>模板标签的工作留作读者练习。)
ySJ 2.0/chapter09/#529 2010-04-16 16:03:33 (我们把创建函数<literal>do_current_time2</literal>和注册给<literal>current_time2</literal>模板标签的工作留给读者练习。)
brightconan 2.0/chapter20/#140 2010-04-16 15:54:39 让我们来看看如果我们使用模板系统重写我们的例子会发生什么
ySJ 2.0/chapter09/#514 2010-04-16 15:49:53 和注册过滤器类似,也可以在Python2.4及其以上版本中使用 <literal>register.tag</literal>装饰器:
clj 2.0/chapter20/#198 2010-04-16 15:30:58 不要直接在cookie中保存数据
ySJ 2.0/chapter09/#505 2010-04-16 15:24:00 例如:
ySJ 2.0/chapter09/#504 2010-04-16 15:23:44 只需实例化一个 <literal>template.Library</literal> 实例然后调用它的 <literal>tag()</literal> 方法。
ySJ 2.0/chapter09/#502 2010-04-16 15:21:41 最后,你需要用你模块的<literal>Library</literal> 实例注册这个标签。
ySJ 2.0/chapter09/#498 2010-04-16 15:20:24 模板标签只允许在编译的时候抛出错误。
ySJ 2.0/chapter09/#497 2010-04-16 15:18:28 与模板过滤器一样,这些渲染函数应该静静地捕获错误,而不是抛出错误。
ySJ 2.0/chapter09/#494 2010-04-16 15:16:07 这两个函数( <literal>__init__()</literal><literal>render()</literal> )与模板处理中的两步(编译与渲染)直接对应。
ySJ 2.0/chapter09/#481 2010-04-16 15:12:48 <literal>token.split_contents()[0]</literal><emphasis>总是</emphasis>记录标签的名字,就算标签没有任何参数。
ySJ 2.0/chapter09/#478 2010-04-16 15:02:57 这个函数可以抛出 <literal>django.template.TemplateSyntaxError</literal> ,这个异常提供所有语法错误的有用信息。
ySJ 2.0/chapter09/#476 2010-04-16 14:58:24 它不够健壮,因为它只是简单的按照所有空格进行拆分,包括那些引号引起来的字符串中的空格。
ySJ 2.0/chapter09/#475 2010-04-16 14:57:51 应该避免使用 <literal>token.contents.split()</literal> (仅使用Python的标准字符串拆分)。
ySJ 2.0/chapter09/#474 2010-04-16 14:21:16 <literal>token.split_contents()</literal> 方法按空格拆分参数同时保证引号中的字符串不拆分。
ySJ 2.0/chapter09/#469 2010-04-16 14:16:29 <literal>token</literal>是正在被解析的语句。
ySJ 2.0/chapter09/#467 2010-04-16 14:14:53 每个标签编译函数有两个参数,<literal>parser</literal><literal>token</literal><literal>parser</literal>是模板解析器对象。
ySJ 2.0/chapter09/#465 2010-04-16 14:11:58 这里需要说明的地方很多:
ySJ 2.0/chapter09/#454 2010-04-16 14:09:33 在这个例子里,标签应该这样使用:
ySJ 2.0/chapter09/#453 2010-04-16 13:58:00 例如,写一个显示当前日期的模板标签:{% current_time %}。该标签会根据参数指定的 strftime 格式(参见:<literal>http://www.djangoproject.com/r/python/strftime/</literal>)显示当前时间。首先确定标签的语法是个好主意。
ammonddp 2.0/chapter13/#386 2010-04-16 13:56:51 要创建一个站点地图,你只需要写一个<literal> Sitemap</literal> 类,并且在URLconf中指向它。
ySJ 2.0/chapter09/#444 2010-04-16 13:50:52 因此,要自定义模板标签,你需要指明原始模板标签如何转换成<literal>节点</literal>(编译函数)和节点的<literal>render()</literal>方法完成的功能 。
ammonddp 2.0/chapter13/#513 2010-04-16 13:48:26 <literal> django.contrib.sitemaps.views.index</literal><literal> django.contrib.sitemaps.views.sitemap</literal>
ammonddp 2.0/chapter13/#545 2010-04-16 13:46:00 <reference name="Chapter 14" refuri="../chapter14/"> 第十四章</reference> 查看创建用户自定义站点需要的工具
ySJ 2.0/chapter09/#443 2010-04-16 13:27:54 这些渲染的结果合并起来,形成了模板的输出。
ySJ 2.0/chapter09/#442 2010-04-16 13:23:58 当你调用一个已编译模板的 <literal>render()</literal> 方法时,模板就会用给定的context来调用每个在它的节点列表上的所有节点的 <literal>render()</literal> 方法。
ySJ 2.0/chapter09/#440 2010-04-16 13:22:08 <literal>name.birthday</literal><literal>today</literal>
ySJ 2.0/chapter09/#439 2010-04-16 13:21:32 IfEqual节点:
ySJ 2.0/chapter09/#437 2010-04-16 13:20:56 <literal>".\n\n"</literal>
ySJ 2.0/chapter09/#436 2010-04-16 13:20:26 文本节点:
ySJ 2.0/chapter09/#434 2010-04-16 13:20:07 <literal>person.name</literal>
ySJ 2.0/chapter09/#433 2010-04-16 13:19:45 变量节点:
ySJ 2.0/chapter09/#428 2010-04-16 13:19:25 被编译的模板表现为节点列表的形式:
ySJ 2.0/chapter09/#431 2010-04-16 13:18:32 <literal>"Hello, "</literal>
ySJ 2.0/chapter09/#424 2010-04-16 13:17:43 于是,一个已编译的模板就是 <literal>节点</literal> 对象的一个列表。
ySJ 2.0/chapter09/#421 2010-04-16 13:16:46 为了自定义一个模板标签,你需要告诉Django当遇到你的标签时怎样进行这个过程。
« < 23 24 25 26 27 28 29 > » 96 pages