forked from alioth310/itt2zh
-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
197 lines (184 loc) · 11.4 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<title>索引页 - Introduction to Tornado 中文翻译</title>
<meta name="author" content="你像从前一样">
<link href="./static/css/styles.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="cover">
<img src="./static/images/cover.jpg" width="420" alt="封面" />
</div>
<div class="menu">
<h1>目 录</h1>
<ul>
<li><a href="./ch1.html">第一章:引言</a></li>
<ul>
<li><a href="./ch1.html#ch1-1">1.1 Tornado是什么?</a></li>
<ul>
<li><a href="./ch1.html#ch1-1-1">1.1.1 Tornado入门</a></li>
<li><a href="./ch1.html#ch1-1-2">1.1.2 社区和支持</a></li>
</ul>
<li><a href="./ch1.html#ch1-2">1.2 简单的Web服务</a></li>
<ul>
<li><a href="./ch1.html#ch1-2-1">1.2.1 Hello Tornado</a></li>
<ul>
<li><a href="./ch1.html#ch1-2-1-1">1.2.1.1 参数handlers</a></li>
<li><a href="./ch1.html#ch1-2-1-2">1.2.1.2 使用正则表达式指定路径</a></li>
</ul>
<li><a href="./ch1.html#ch1-2-2">1.2.2 字符串服务</a></li>
<li><a href="./ch1.html#ch1-2-3">1.2.3 关于RequestHandler的更多知识</a></li>
<ul>
<li><a href="./ch1.html#ch1-2-3-1">1.2.3.1 HTTP方法</a></li>
<li><a href="./ch1.html#ch1-2-3-2">1.2.3.2 HTTP状态码</a></li>
</ul>
<li><a href="./ch1.html#ch1-2-4">1.2.4 下一步</a></li>
</ul>
</ul>
<li><a href="./ch2.html">第二章:表单和模板</a></li>
<ul>
<li><a href="./ch2.html#ch2-1">2.1 简单示例:Poem Maker Pro</a></li>
<ul>
<li><a href="./ch2.html#ch2-1-1">2.1.1 渲染模板</a></li>
<li><a href="./ch2.html#ch2-1-2">2.1.2 填充</a></li>
</ul>
<li><a href="./ch2.html#ch2-2">2.2 模板语法</a></li>
<ul>
<li><a href="./ch2.html#ch2-2-1">2.2.1 填充表达式</a></li>
<li><a href="./ch2.html#ch2-2-2">2.2.2 控制流语句</a></li>
<li><a href="./ch2.html#ch2-2-3">2.2.3 在模板中使用函数</a></li>
</ul>
<li><a href="./ch2.html#ch2-3">2.3 复杂示例:The Alpha Munger</a></li>
<ul>
<li><a href="./ch2.html#ch2-3-1">2.3.1 它如何工作</a></li>
<li><a href="./ch2.html#ch2-3-2">2.3.2 提供静态文件</a></li>
<ul>
<li><a href="./ch2.html#ch2-3-2-1">2.3.2.1 设置静态路径</a></li>
<li><a href="./ch2.html#ch2-3-2-2">2.3.2.2 使用static_url生成静态URL</a></li>
</ul>
<li><a href="./ch2.html#ch2-3-3">2.3.3 模板的下一步</a></li>
</ul>
</ul>
<li><a href="./ch3.html">第三章:模板扩展</a></li>
<ul>
<li><a href="./ch3.html#ch3-1">3.1 块和替换</a></li>
<ul>
<li><a href="./ch3.html#ch3-1-1">3.1.1 块基础</a></li>
<li><a href="./ch3.html#ch3-1-2">3.1.2 模板练习:Burt's Book</a></li>
<li><a href="./ch3.html#ch3-1-3">3.1.3 自动转义</a></li>
</ul>
<li><a href="./ch3.html#ch3-2">3.2 UI模块</a></li>
<ul>
<li><a href="./ch3.html#ch3-2-1">3.2.1 基础模块使用</a></li>
<li><a href="./ch3.html#ch3-2-2">3.2.2 模块深入</a></li>
<li><a href="./ch3.html#ch3-2-3">3.2.3 嵌入JavaScript和CSS</a></li>
</ul>
<li><a href="./ch3.html#ch3-3">3.3 总结</a></li>
</ul>
<li><a href="./ch4.html">第四章:数据库</a></li>
<ul>
<li><a href="./ch4.html#ch4-1">4.1 使用PyMongo进行MongoDB基础操作</a></li>
<ul>
<li><a href="./ch4.html#ch4-1-1">4.1.1 创建连接</a></li>
<li><a href="./ch4.html#ch4-1-2">4.1.2 处理文档</a></li>
<li><a href="./ch4.html#ch4-1-3">4.1.3 MongoDB文档和JSON</a></li>
</ul>
<li><a href="./ch4.html#ch4-2">4.2 一个简单的持久化Web服务</a></li>
<ul>
<li><a href="./ch4.html#ch4-2-1">4.2.1 只读字典</a></li>
<li><a href="./ch4.html#ch4-2-2">4.2.2 写字典</a></li>
</ul>
<li><a href="#ch4-3">4.3 Burt's Books</a></li>
<ul>
<li><a href="./ch4.html#ch4-3-1">4.3.1 读取书籍(从数据库)</a></li>
<li><a href="./ch4.html#ch4-3-2">4.3.2 编辑和添加书籍</a></li>
<ul>
<li><a href="./ch4.html#ch4-3-2-1">4.3.2.1 渲染编辑表单</a></li>
<li><a href="./ch4.html#ch4-3-2-2">4.3.2.2 从数据库中取出书籍信息</a></li>
<li><a href="./ch4.html#ch4-3-2-3">4.3.2.3 保存到数据库中</a></li>
</ul>
</ul>
<li><a href="./ch4.html#ch4-4">4.4 MongoDB:下一步</a></li>
</ul>
<li><a href="./ch5.html">第五章:异步Web服务</a></li>
<ul>
<li><a href="./ch5.html#ch5-1">5.1 异步Web请求</a></li>
<ul classs="index-section">
<li><a href="./ch5.html#ch5-1-1">5.1.1 从同步开始</a></li>
<li><a href="./ch5.html#ch5-1-2">5.1.2 阻塞的困扰</a></li>
<li><a href="./ch5.html#ch5-1-3">5.1.3 基础异步调用</a></li>
<li><a href="./ch5.html#ch5-1-4">5.1.4 异步装饰器和finish方法</a></li>
<li><a href="./ch5.html#ch5-1-5">5.1.5 异步生成器</a></li>
<li><a href="./ch5.html#ch5-1-6">5.1.6 异步操作总结</a></li>
</ul>
<li><a href="./ch5.html#ch5-2">5.2 使用Tornado进行长轮询</a></li>
<ul>
<li><a href="./ch5.html#ch5-2-1">5.2.1 长轮询的好处</a></li>
<li><a href="./ch5.html#ch5-2-2">5.2.2 示例:实时库存报告</a></li>
<li><a href="./ch5.html#ch5-2-3">5.2.3 长轮询的缺陷</a></li>
</ul>
<li><a href="./ch5.html#ch5-3">5.3 Tornado与WebSockets</a></li>
<ul>
<li><a href="./ch5.html#ch5-3-1">5.3.1 Tornado的WebSocket模块</a></li>
<li><a href="./ch5.html#ch5-3-2">5.3.2 示例:使用WebSockets的实时库存</a></li>
<li><a href="./ch5.html#ch5-3-3">5.3.3 WebSockets的未来</a></li>
</ul>
</ul>
<li><a href="./ch6.html">第六章:编写安全应用</a></li>
<ul>
<li><a href="./ch6.html#ch6-1">6.1 Cookie漏洞</a></li>
<ul>
<li><a href="./ch6.html#ch6-1-1">6.1.1 Cookie伪造</a></li>
<li><a href="./ch6.html#ch6-1-2">6.1.2 安全Cookies</a></li>
<ul>
<li><a href="./ch6.html#ch6-1-2-1">6.1.2.1 使用安全Cookies</a></li>
<li><a href="./ch6.html#ch6-1-2-2">6.1.2.2 HTTP-Only和SSL Cookies</a></li>
</ul>
</ul>
<li><a href="./ch6.html#ch6-2">6.2 请求漏洞</a></li>
<ul>
<li><a href="./ch6.html#ch6-2-1">6.2.1 剖析一个XSRF</a></li>
<li><a href="./ch6.html#ch6-2-2">6.2.2 防范请求伪造</a></li>
<li><a href="./ch6.html#ch6-2-3">6.2.3 使用Tornado的XSRF保护</a></li>
<ul>
<li><a href="./ch6.html#ch6-2-3-1">6.2.3.1 XSRF令牌和AJAX请求</a></li>
</ul>
</ul>
<li><a href="./ch6.html#ch6-3">6.3 用户验证</a></li>
<ul>
<li><a href="./ch6.html#ch6-3-1">6.3.1 示例:欢迎回来</a></li>
<li><a href="./ch6.html#ch6-3-2">6.3.2 authenticated装饰器</a></li>
<ul>
<li><a href="./ch6.html#ch6-3-2-1">6.3.2.1 current_user属性</a></li>
<li><a href="./ch6.html#ch6-3-2-2">6.3.2.2 login_url设置</a></li>
</ul>
</ul>
<li><a href="./ch6.html#ch6-4">6.4 总结</a></li>
</ul>
<li><a href="./ch7.html">第七章:外部服务认证</a></li>
<ul>
<li><a href="./ch7.html#ch7-1">7.1 Tornado的auth模块</a></li>
<ul>
<li><a href="./ch7.html#ch7-1-1">7.1.1 认证流程</a></li>
<li><a href="./ch7.html#ch7-1-2">7.1.2 异步请求</a></li>
</ul>
<li><a href="./ch7.html#ch7-2">7.2 示例:登录Twitter</a></li>
<li><a href="./ch7.html#ch7-3">7.3 示例:Facebook认证和Graph API</a></li>
</ul>
<li><a href="./ch8.html">第八章:部署Tornado</a></li>
<ul>
<li><a href="./ch8.html#ch8-1">8.1 运行多个Tornado实例的原因</a></li>
<li><a href="./ch8.html#ch8-2">8.2 使用Nginx作为反向代理</a></li>
<ul>
<li><a href="./ch8.html#ch8-2-1">8.2.1 Nginx基本配置</a></li>
<li><a href="./ch8.html#ch8-2-2">8.2.2 Nginx的SSL解密</a></li>
</ul>
<li><a href="./ch8.html#ch8-3">8.3 使用Supervisor监控Tornado进程</a></li>
</ul>
</ul>
</div>
</div>
</body>
</html>