|
2.0/chapter09/#270 |
2010-01-02 13:32:39
|
而不是这样
|
|
|
2.0/chapter09/#267 |
2010-01-02 13:32:19
|
这意味着你必须这样写
|
|
|
2.0/chapter09/#265 |
2010-01-02 13:31:39
|
这是由于字符常量完全由模板作者决定,因此编写模板的时候必须确保文件的正确性.
|
|
|
2.0/chapter09/#264 |
2010-01-02 13:28:59
|
所有字符常量没有经过转义就被插入模板,就如同它们都经过了<literal> safe</literal> 过滤
|
|
|
2.0/chapter09/#261 |
2010-01-02 13:24:32
|
就像我们前面提到的,过滤器也可以是字符串.
|
|
|
2.0/chapter09/#179 |
2010-01-02 13:12:11
|
类似的,如果name包含一个 <literal>'<'</literal> 字符,就会变成这样?
|
|
luffy
|
2.0/chapter09/#228 |
2010-01-01 18:58:21
|
用safe过滤器为单独的变量关闭自动转意:
|
|
luffy
|
2.0/chapter09/#228 |
2010-01-01 18:57:05
|
用<1>safe<2> 过滤器为单独的变量关闭自动转意:
|
|
luffy
|
2.0/chapter09/#195 |
2010-01-01 18:54:17
|
这是最初几年django的默认方案,但是这样的问题是把责任推给<emphasis>you</emphasis> 自己,开发者、模版作者,来确保转意每一件事情。
|
|
luffy
|
2.0/chapter09/#179 |
2010-01-01 18:50:42
|
相似地,如果名字里包含一个<literal>'<'</literal> 符号会怎样?
|
|
luffy
|
2.0/chapter09/#117 |
2010-01-01 18:48:00
|
如果包含<literal>TEMPLATE_CONTEXT_PROCESSORS</literal>处理器,每一个<literal>RequestContext</literal>将包含这些变量:
|
|
luffy
|
2.0/chapter09/#46 |
2010-01-01 18:41:39
|
例如,考虑这两个视图:
|
|
luffy
|
2.0/chapter09/#20 |
2010-01-01 18:40:54
|
例如,一个模版标签能够产生作为控制结构的内容(一个 <literal>if</literal><literal>for</literal> 循环),
|
|
luffy
|
2.0/chapter09/#19 |
2010-01-01 18:36:56
|
这个定义故意搞得模糊不清。
|
|
|
2.0/chapter08/#378 |
2010-01-01 18:35:37
|
这里,我们重构method_splitter(),去掉了GET和POST两个关键字参数,改而支持使用*args和和**kwargs(注意*号)
|
|
luffy
|
2.0/chapter09/#7 |
2010-01-01 18:35:30
|
它也包含一个自动转意特征,当你继续使用django的时候随着时间推移你一定会注意这个安全考虑。
|
|
|
2.0/chapter08/#391 |
2010-01-01 18:30:05
|
(我们通过指定pop的缺省值为None,来避免由于一个或者多个关键字缺失带来的KeyError)
|
|
|
2.0/chapter08/#381 |
2010-01-01 18:26:19
|
如果你在函数定义时,在参数前面加两个*号,所有传递给函数的关键字参数,将会保存为一个字典
|
|
|
2.0/chapter08/#380 |
2010-01-01 18:25:08
|
如果你在函数定义时,只在参数前面加一个*号,所有传递给函数的参数将会保存为一个元组.
|
|
|
2.0/chapter08/#439 |
2010-01-01 18:18:31
|
.
|
|
|
2.0/chapter08/#400 |
2010-01-01 18:16:19
|
(注意,虽然我们还没有讲到request.user,但是14章将要讲到它.就如你所想像的,request.user描述当前用户是登陆的还是匿名)
|
|
|
2.0/chapter08/#426 |
2010-01-01 18:01:51
|
admin模块有他自己的URLconf,你仅仅只需要在你自己的代码中加入include就可以了.
|
|
|
2.0/chapter08/#425 |
2010-01-01 18:00:43
|
在前面第6章介绍Django的admin模块时我们曾经见过include.
|
|
|
2.0/chapter08/#441 |
2010-01-01 17:57:53
|
/weblog//2007/(包含两个斜杠)
|
|
|
2.0/chapter08/#444 |
2010-01-01 17:56:58
|
剩下的部分是/2007/ (最前面有一个斜杠),不匹配mysite.blog.urls中的任何一行.
|
|
|
2.0/chapter08/#443 |
2010-01-01 17:55:23
|
因为它有一个include(),django去掉了匹配的部,在这个例子中匹配的部分是'weblog/'
|
|
|
2.0/chapter08/#442 |
2010-01-01 17:53:54
|
在第一个URLconf中,r'^weblog/'匹配
|
|
|
2.0/chapter08/#408 |
2010-01-01 17:41:26
|
处理request.user.is_authenticated()这个验证,从而决定是否执行原来的view函数
|
|
|
2.0/chapter08/#408 |
2010-01-01 17:40:14
|
处理request.user.is_authenticated()这个验证,从而决定是否授权原来的view函数
|
|
|
2.0/chapter08/#407 |
2010-01-01 17:34:53
|
函数requires_login,传入一个视图函数view,然后返回一个新的视图函数new_view.这个新的视图函数new_view在函数requires_login内定义
|
|
|
2.0/chapter08/#410 |
2010-01-01 17:29:08
|
现在,我们可以从views中去掉if not request.user.is_authenticated()验证.我们可以在URLconf中很容易的用requires_login来包装实现.
|
|
|
2.0/chapter08/#414 |
2010-01-01 17:25:09
|
现在我们建立了一个漂亮,通用的函数requires_login()来帮助我们修饰所有需要它来验证的视图
|
|
|
2.0/chapter08/#413 |
2010-01-01 17:22:14
|
优化后的代码和前面的功能一样,但是减少了代码冗余
|
|
luffy
|
2.0/chapter09/#226 |
2009-12-31 15:29:58
|
对于特殊的变量
|
|
luffy
|
2.0/chapter09/#224 |
2009-12-31 15:25:01
|
或者,你可能正在使用django的模板系统生成非html文本,比如一个e-mail信息。
|
|
luffy
|
2.0/chapter09/#223 |
2009-12-31 15:23:27
|
例如,你可能在数据库里存储了一块被信任的html,并且你想直接把它嵌入到你的模板里。
|
|
luffy
|
2.0/chapter09/#222 |
2009-12-31 15:21:54
|
因为有时候模板变量包含打算被翻译为原始html的数据,在这种情况下我们不想它们的内容被转意。
|
|
luffy
|
2.0/chapter09/#221 |
2009-12-31 15:19:27
|
为什么要关闭它?
|
|
luffy
|
2.0/chapter09/#219 |
2009-12-31 15:18:49
|
如果你不想数据被自动转意,在每一站点级别、每一模板级别或者每一变量级别你都能用两三中方法来关闭它。
|
|
luffy
|
2.0/chapter09/#217 |
2009-12-31 15:16:51
|
如何关闭它
|
|
luffy
|
2.0/chapter09/#215 |
2009-12-31 15:16:14
|
如果你正在使用django的模板系统,那么你是被保护的。
|
|
luffy
|
2.0/chapter09/#214 |
2009-12-31 15:15:33
|
另外,我强调一下这个行为默认是开启的。
|
|
luffy
|
2.0/chapter09/#206 |
2009-12-31 15:14:11
|
> 被转换为> |
|
luffy
|
2.0/chapter09/#204 |
2009-12-31 15:13:38
|
< 被转换为 < |
|
luffy
|
2.0/chapter09/#204 |
2009-12-31 15:12:39
|
<被转换为<
|
|
luffy
|
2.0/chapter09/#202 |
2009-12-31 15:11:35
|
尤其是这五个字符。
|
|
luffy
|
2.0/chapter09/#201 |
2009-12-31 15:11:05
|
在django里默认情况下,每一个模板自动转意每一个变量标签的输出。
|
|
luffy
|
2.0/chapter09/#199 |
2009-12-31 15:08:24
|
这一章的剩余部分描述自动转意是如何工作的。
|
|
luffy
|
2.0/chapter09/#198 |
2009-12-31 15:06:53
|
二是,你可以利用django的自动html转意。
|
|
luffy
|
2.0/chapter09/#196 |
2009-12-31 15:06:00
|
很容易就忘记转意数据。
|
|