鱼C论坛

 找回密码
 立即注册
查看: 8169|回复: 13

[Python] 【进阶】《Python 核心编程》(第三版)

[复制链接]
发表于 2018-2-3 15:20:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
TB17i0nNXXXXXc8XpXXXXXXXXXX_!!0-item_pic.jpg_430x430q90.jpg
. [$ ?, m+ E/ q, U0 [2 G9 I% E5 [

7 B/ }4 V& D1 T书名:《Python 核心编程》(第三版)- |" D& O) O9 |) O" a: Q8 e7 f! e
作者:卫斯理•春(Wesley Chun) 9 h/ M& M5 R1 k) y4 ~
译者:孙波翔,李斌,李晗
0 v" g2 ^: |+ k4 y+ A. g出版社:人民邮电出版社, U( R; f9 ]5 l$ {5 L, D2 h; {
出版年:第1版 (2016年5月25日)
) @* w$ \# k; O$ ?* @定价:99.00
- O$ u& f- M5 m3 E2 x! u  s装帧:平装) G+ y- u6 z0 [6 m1 j, C. u
ISBN:71154147772 ^5 P. ], x( Q' G1 R5 _! ^% i

  M+ l+ ]1 R- L/ P! `% P

6 B5 I1 y. I6 [% @( T# @! u- I. [4 v购买链接:
& L, g8 J0 D' w# l8 e5 c$ j) }7 x' ]. t* \7 h
亚马逊 -> 传送门! `: t7 K" H5 \

8 k1 T- C. C2 [; B" U" }当当网 -> 传送门# Q9 E0 m6 v4 b" Z% U0 x

6 F! {, ~8 K5 |7 k京东 -> 传送门
! S' t' j1 b9 C8 G; z$ a
, S! T& A9 ]. J( r! C7 R5 I天猫 -> 传送门; u; ?# s/ L5 {! Y2 x" F" I% q7 d

+ j) R* I" R) ^4 I/ P: v7 O2 t; L  I$ I# X- A

! q- W8 z% h, [  z, T# N8 _
内容简介:
4 D+ Y0 Y3 R; `0 Z/ v
1 J. a9 T* P0 z《Python核心编程(第3版)》是经典畅销图书《Python核心编程(第 二版)》的全新升级版本,总共分为3部分。第 1部分为讲解了Python的一些通用应用,包括正则表达式、网络编程、Internet客户端编程、多线程编程、GUI编程、数据库编程、Microsoft Office编程、扩展Python等内容。第 2部分讲解了与Web开发相关的主题,包括Web客户端和服务器、CGI和WSGI相关的Web编程、Django Web框架、云计算、高 级Web服务。第3部分则为一个补充/实验章节,包括文本处理以及一些其他内容。 《Python核心编程(第3版)》适合具有一定经验的Python开发人员阅读。
. O4 `9 }9 D7 T/ P- g* O" j$ Y) J& I) V$ s! C2 y: h

, K, ]$ R/ W5 D0 `4 I' B
目录:, q, n3 R' t4 V  O

/ q4 U, ^/ A: D* G/ [% ?, [# j2 Y★ 第一部分 通用应用主题$ A& B& W' J- Y  L) X! B& C/ b

0 n# c: L  f$ ~! [8 ?: |第1章 正则表达式 2
1 q' L+ o* R$ j  A3 |% F( U
/ C% `$ [  J1 j: y0 D9 U1 i1.1 简介/动机 3
4 `, s& Q+ p; s0 y3 f( r& U
7 i& Q. `+ @9 _1.2 特殊符号和字符 5/ p# R$ k" }( {; _

5 d, {" H/ k# O8 M1.2.1 使用择一匹配符号匹配多个正则表达式模式 6
2 k0 a6 s" o4 W, g" N/ Z2 {' t0 h1 H8 a6 v( g% u2 o3 z& Q
1.2.2 匹配任意单个字符 6
/ m# ?  L5 U" S) @: `4 X" t
2 U2 i& Z  j0 a7 D1.2.3 从字符串起始或者结尾或者单词边界匹配 7
0 C' b) `* v" O3 o3 c6 j: t# D, {) c$ t7 `0 {
1.2.4 创建字符集 8
8 b6 Z5 U7 V3 i8 T; W3 y. U3 n) Z
1.2.5 限定范围和否定 8  {& Y: ~" C: x7 J2 E+ a8 p

3 j/ H& y5 R9 e3 G1 \. B( r1.2.6 使用闭包操作符实现存在性和频数匹配 9
' K9 [/ a& b/ N' W
2 q3 v) w" R) }1.2.7 表示字符集的特殊字符 108 f0 b8 e: K' J+ p

' G5 N) o$ x9 k" D9 r1.2.8 使用圆括号指定分组 10
4 c$ Q2 @! i4 I' f
, @/ ]; s" f1 j2 e1.2.9 扩展表示法 11
0 [) e) D- [6 o: J! Q0 r4 M7 \. y1 V4 l. m& D/ Q3 `
1.3 正则表达式和Python语言 11) G7 g) M8 j' W6 Z" ?4 U. M% G

" V% }' T0 ~! F# ~% T, w1.3.1 re模块:核心函数和方法 12& b# e6 k8 \5 Y4 q
, n+ t5 v% C$ V+ K
1.3.2 使用compile()函数编译正则表达式 133 x  D0 U% F2 a  k3 f

8 T) I: R  ?) {: y9 n$ E$ U- i1.3.3 匹配对象以及group()和groups()方法 14
6 i# m( {; s% x: X' t! z7 ?
3 E5 [8 O! t9 o+ U1.3.4 使用match()方法匹配字符串 14# p. y1 {5 [6 x5 b4 r- K9 C

" A4 a/ b# {! a1.3.5 使用search()在一个字符串中查找模式(搜索与匹配的对比) 15( w9 {% h4 c- u7 Z2 o$ B6 O
) W$ W4 Q" t$ r. X
1.3.6 匹配多个字符串 16
3 H, j* Q' B7 S: ?4 M1 B6 S- @) J- R: ^% x( @1 l  X
1.3.7 匹配任何单个字符(.) 16& V* n: U" w. d% N# y: s

( `! n9 @2 |( T8 T9 T/ x1 d. T1.3.8 创建字符集([ ]) 177 x/ z) x# w% Y. G9 L

  W/ j2 S2 a; b, q' C% w- R1.3.9 重复、特殊字符以及分组 18( [6 M: }8 v! m: d) ^3 ~: W
. I* D. E* W$ h# F0 l% k
1.3.10 匹配字符串的起始和结尾以及单词边界 20
/ o. n0 T( k1 T1 _' k9 R9 b4 l  ]. z2 S9 r  h/ I  W4 v
1.3.11 使用findall()和finditer()查找每一次出现的位置 21
$ n  W% j8 b# F4 t+ m; k; U. w
9 ?& D- D5 w- m1.3.12 使用sub()和subn()搜索与替换 22
/ ^; Y# ]: J5 i# e( x3 G+ _+ L9 k& r2 W' L3 ^! ~& z4 C" U
1.3.13 在限定模式上使用split()分隔字符串 23
( Z- ]; M. [) B1 Q5 R7 O, I- `' q* T) G- T0 N/ b
1.3.14 扩展符号 24
8 Q0 k4 u0 Y  u1 c+ b1 f
( a# [; Y6 x" m$ N& J3 @2 |% X1.3.15 杂项 27
; M  t* O; X+ e- k
8 r8 C* ^3 H& F% D1.4 一些正则表达式示例 28
- r( D& ]5 Q2 Z: O& ~/ \9 G  o8 n  y  g' R% k( |
1.5 更长的正则表达式示例 33. V; G% ]" B+ \
* J( h5 {* J' l
1.5.1 匹配字符串 35  e. d& O0 @: x, z# \  k; U; H8 B

7 V+ D2 j8 j: v( a/ h; ]1.5.2 搜索与匹配……还有贪婪 37* C3 S$ {, L; {& u. N
3 U2 h2 ?: b' Z8 o, \1 ]
1.6 练习 39
+ r1 a* J5 W$ h0 ?% v7 \! B2 _; d4 ~/ W: S
第2章 网络编程 42+ {( V+ M0 S4 u& n
  ]  N& e0 v$ I# u+ s% e* ~' n
2.1 简介 43
2 d/ c' B2 C' ?0 T; e: x8 L
- o: x7 ~* k9 g2.2 客户端/服务器架构 43
+ b* D4 K) @& p6 h) P; T- m
/ v3 A2 a" T+ w* ?* C) k- @2.2.1 硬件客户端/服务器架构 43
6 X, D3 W4 u6 a; c: A
: p* }7 O+ I8 m/ |2.2.2 软件客户端/服务器架构 442 c7 |) y; b) O9 k" l5 a
; r0 R0 o' z7 w, d$ Z- e- E' w
2.2.3 银行出纳员作为服务器吗 44
0 u, \' O7 t8 I2 ^+ B3 L. [2 t* Q; s
2.2.4 客户端/服务器网络编程 45
! {+ a- }, h* h. G* _5 f
' o* P/ ]! n* |- ]2.3 套接字:通信端点 467 g  P4 c# h3 z* `
/ F4 }" O$ E, B) d- n' y( w
2.3.1 套接字 46% I/ u0 i8 V( i; I0 |* w' w- g

0 |: y4 U9 {" u2.3.2 套接字地址:主机-端口对 47! W; M8 g4 }4 k" I# I( A
! E2 d. B: `9 B3 u
2.3.3 面向连接的套接字与无连接的套接字 47
$ t( V& A4 z3 E4 W8 P  f( I* U: `' ]
2.4 Python中的网络编程 480 c, s0 ]/ u$ b1 X% L+ e
4 _4 w8 W7 w/ `; ?2 u
2.4.1 socket()模块函数 49
2 Y* M! M' L: s: m3 K( D9 E% ]6 f
2 T8 O* R, H" c7 f' W& p' }2.4.2 套接字对象(内置)方法 493 o- D' x6 Y7 w' M( j

7 O8 o3 R  y+ o$ v1 C% z9 }% P" U# B2.4.3 创建TCP服务器 51
8 y3 {  E3 T/ A! e, ?  }8 N2 g- T( O- m4 a
2.4.4 创建TCP客户端 549 i3 n# i1 d* d# P  z  M) |
" e* T+ x8 B( }+ T
2.4.5 执行TCP服务器和客户端 56
$ R) T+ N- K$ j$ G
3 J; C/ D: b9 D# Y7 _7 E2.4.6 创建UDP服务器 58
4 b5 ]2 x( Q; [& q7 L! E4 {& u- ^5 z2 E& T5 Y
2.4.7 创建UDP客户端 59
0 O% p& B1 s* r& k
# H7 G" m! z# M9 Q, q+ b4 t2.4.8 执行UDP服务器和客户端 60
" a! h8 n2 ?% M1 f  ^* ]
6 h# j& f) l* G* [- E2.4.9 socket模块属性 612 c# k$ u% [. F& D; e
4 d. p/ p& A3 P/ k* U) A. y
2.5 *SocketServer模块 62
' G  @+ Y* S  C; b- o$ a7 S
5 p8 x0 N8 g  _" \) [2.5.1 创建SocketServer TCP服务器 63: d% ?9 T! l6 E6 U6 V* _% f' V  e

2 d( J! ?/ {$ U. s* _/ W0 Z6 o2.5.2 创建SocketServer TCP客户端 64
+ t& P$ ~, t! X  x1 o
2 g/ F: ]# G9 |2.5.3 执行TCP服务器和客户端 65
& D( V3 w: S$ I0 g+ Z# ^
+ U# [' [$ d* {1 J, O0 g  B0 u2.6 *Twisted框架介绍 66; v5 p4 {$ z1 R/ C3 t# h! z( l! ^/ V
3 @" @" ~2 m" ?! D+ ]
2.6.1 创建Twisted ReactorTCP服务器 66
" \' ^8 t# |9 J! m8 o% t& L1 ]& N' }( P5 s
2.6.2 创建Twisted ReactorTCP客户端 67( m- A; P9 l' q6 C4 o1 y; {& h: A: V
% C, n1 f5 u3 ^+ Q, K2 q! m$ |2 h
2.6.3 执行TCP服务器和客户端 69
! V; {, H  L1 n; ]' c8 _
! Z5 M0 e; q3 |! {2.7 相关模块 690 U$ m! C" W' @
5 i& [8 Y/ L+ @$ t% i( w
2.8 练习 70
7 z7 F) O! L6 C: h
+ F- W# l  a* c3 c: `5 e第3章 因特网客户端编程 74% [% N, L. @5 }
/ a0 {# M2 n! {2 f1 v3 C! `; q1 K
3.1 因特网客户端简介 75
: n, R1 ?0 d3 L& ^, v* R6 U$ L" W8 o! L" g6 V# d, s& v( b
3.2 文件传输 75
- Y. |  E+ W) @5 H$ _4 s
- d. p/ ]) n- c/ w; c! l; r% T3.2.1 文件传输因特网协议 75
7 Q* \0 C. ]6 d) k5 a) v) @- h. ]5 c( ]; o9 J2 D+ J
3.2.2 文件传输协议 76" ^" q( s, y  ?

6 c( Q7 }* d1 v: G( }+ V( T  c3.2.3 Python和FTP 77
3 |$ b2 t" O& I6 ~& D0 p5 J4 J7 w. Y" G1 c( \
3.2.4 ftplib.FTP类的方法 77( \3 ?: d0 H- L

* j& j; s9 ]7 }. q( Y7 d) J7 _3 f1 A6 m. W3.2.5 交互式FTP示例 78. M2 L1 d" X% `! o- j
+ @& T7 m& O4 K* K) z
3.2.6 客户端FTP程序示例 79
  x. z  G6 a) m$ U  Y) Y. E( a" A# R
. z- L. r2 u  M9 R, r4 X% m3.2.7 FTP的其他内容 80( H. K7 J3 C5 T# ~

/ e. @" n' p' c9 d; n$ [3.3 网络新闻 81
& p( p7 h2 `7 ^& S+ i# H$ [9 o
; T5 h9 K1 k, J& J7 w/ G0 d0 `, q3.3.1 Usenet与新闻组 81
( z8 O0 t) G9 b- S- E$ O3 s5 c& Q8 I
3.3.2 网络新闻传输协议 82- `8 v9 x4 j$ J' F7 x

$ b- S/ U5 m% |/ _, Y3 g7 {0 J; w3.3.3 Python和NNTP 83
* k4 j5 d. V; i9 M
0 Z* i! ]0 e* x; j- S7 W1 y3.3.4 nntplib.NNTP类方法 83
, y1 I- Y- ~1 D8 n
# M& y2 C, f0 y) ~0 E9 q3.3.5 交互式NNTP示例 84
2 S' B, _# l; u- X3 F0 G9 T/ K  l7 R0 Q8 J5 b9 V/ j- @9 @! P% k3 ~
3.3.6 客户端程序NNTP示例 85$ k4 _- A1 u. c) c/ p+ }

2 t+ N$ Y: F: n  g5 a) @" c3.3.7 NNTP的其他内容 89
" o1 y/ l7 E- A; t+ i* X; _) d# ^2 c3 y4 h6 [/ O
3.4 电子邮件 90' f$ M! ^: J) w$ x2 k
- N3 C1 j( T9 k4 ]  h3 y
3.4.1 电子邮件系统组件和协议 90
6 Z" D5 f/ V0 q* i" b6 g0 ^. c
- w# Q4 r- a6 G; ]. f3.4.2 发送电子邮件 913 V7 W9 ~" U- P2 V
+ x7 w6 O* W1 ?- h$ v0 ?
3.4.3 Python和SMTP 92
6 e/ J! }4 m" n4 |4 e+ J8 p% L, u: r6 K( ]7 c0 U
3.4.4 smtplib.SMTP类方法 92
9 t$ v' W6 L" ^8 D, P3 ~- M& T& m; X% u4 C$ C8 }1 m& Z
3.4.5 交互式SMTP示例 93
9 q* u- s2 W9 |/ r: G
3 [" u2 Y4 J- _" Q7 @2 Y: ^, r3.4.6 SMTP的其他内容 94' S3 i( ], L5 X% ?5 f
! A6 R. m4 Q1 p+ h1 b) E% G% c6 Y
3.4.7 接收电子邮件 94
$ ~+ A7 Q. f. \$ O9 Z  r
; h0 V( r& m# {$ W& t3.4.8 POP和IMAP 95
/ p  ^. q, J; k5 Z- V( [& w3 w9 ~- v7 w
3.4.9 Python和POP3 95
/ ~+ ?: B1 M0 J( @. |  H' V! w
( C  P! O2 {: a* o3.4.10 交互式POP3示例 96
6 u8 O7 }1 x7 o3 M0 j, P& x
0 M' ]2 y2 l0 B" |( X& ^3.4.11 poplib.POP3类方法 97
6 \) w) C( M+ l1 B% A
, E& i5 ]+ c( H3.4.12 客户端程序SMTP和POP3示例 98
' w. h, Y6 P8 M9 p: O7 ]8 W4 n6 X* ~7 ~0 U' F" V6 ^
3.4.13 Python和IMAP4 1003 s9 T1 ^" [# D
* ]1 J  a( i2 u2 Y# ~
3.4.14 交互式IMAP4示例 100
/ J% l" G8 D, }. ^  [
6 H# }7 X/ p8 Q. |# R3.4.15 imaplib.IMAP4类中的常用方法 1018 F' `2 u* k- p2 E# M" s' s3 I# C
) q( n3 d( K, Y* ]& H- ~
3.5 实战 102
  v# G/ W( _" ^. H  T# m$ I+ t9 |
/ l) P- U3 A, O/ D3.5.1 生成电子邮件 102
7 o0 ?) {6 v% q/ X/ s5 R- o6 K" s# U7 G6 [! i
3.5.2 解析电子邮件 104
. p1 m5 k* d6 z! i" T9 d' p* h
: _1 t' u  t4 X. K0 }% x- W( m3.5.3 基于Web的云电子邮件服务 1053 ^- ], o# V& v% f1 F4 Y
% L1 T. Q$ {# p0 k1 M$ h
3.5.4 zui佳实践:安全、重构 1061 @+ {; \& L2 I& j! [2 O8 |0 [* [

3 s/ |+ d; h7 u/ [2 `9 H" `3.5.5 Yahoo! Mail 108$ h) K; M+ ], I
) u0 u# C# A( H: ?3 k8 m9 C
3.5.6 Gmail 112& N8 j$ g: m- G
; c& A) y/ a& _/ v7 B# ?, V
3.6 相关模块 115
& V1 S& U4 C; \* ~1 }) U- Y1 ]6 }. j5 y  j: ~* c, N
3.6.1 电子邮件 1153 T  c5 x6 G3 f2 {

: z3 J! J$ M( ^& V' S7 y3.6.2 其他因特网客户端协议 115
1 m: J( W/ q6 C% V' H; r& N' e: n5 h4 ]1 F4 T/ L+ a
3.7 练习 116
( E" k8 t0 y7 Y2 q8 E
- W* M3 u$ E& @6 ?4 Q第4章 多线程编程 1225 M9 R- N7 D& O6 w" D# F

5 I6 N/ k& k8 I4.1 简介/动机 1237 J- r! {5 ?; m) M7 J7 T/ I6 x1 |

+ v; B2 ~. S9 w5 z) }5 c; w4.2 线程和进程 124- R! ~9 L- D1 H# T( `/ w7 ]* _

  r( }' a( ?. k; F- M6 q4.2.1 进程 124% x) U3 |% p: ~1 l: V
/ D0 ?' k5 Q  |$ i+ w0 s
4.2.2 线程 124& b7 G1 ?& D, g3 P3 R9 K
4 B# ~1 a$ B# `- ^0 N
4.3 线程和Python 125% H9 j, F) L! @. E) y4 F6 W0 L

- O' w/ |/ t4 q" K! S4.3.1 全局解释器锁 125" @! x. g& B- J1 T% g  i: K

: ?8 S5 ~% ]! ~1 `  I8 ?4 y2 h4.3.2 退出线程 126+ ]  J4 t) W( X- |: b

+ D3 u  K3 \& {; z4.3.3 在Python中使用线程 1262 j8 ~: _) S; X3 z8 u
0 y3 Y7 v7 {' u9 D8 t
4.3.4 不使用线程的情况 1267 Q+ A- e, c% H$ G

  l( z3 e1 _# m+ a0 y  N3 }4.3.5 Python的threading模块 128
: [/ w. S) v7 b6 g. U$ [, z% v! Y4 U% W2 c
4.4 thread模块 1283 b, U! L9 @- v
, k  p8 ]/ ]* S. v9 Q: s: N% p4 @
4.5 threading模块 1320 T  T4 d. d& Q# }

9 n7 [- B' o# z' h4.5.1 Thread类 133
& f( S, l) A" L8 C! G# B) [0 {
8 A/ z: p' A' E" y5 R7 g4.5.2 threading模块的其他函数 139: n& D9 @# o8 @& O( y7 S
2 V! C3 C0 p/ l+ f
4.6 单线程和多线程执行对比 140$ Y0 b3 [* h1 m. J5 A! b  [2 I! X9 `

* l. j. e7 y/ U: X* x4.7 多线程实践 142
6 X! s& E7 J( J5 n5 G; g8 D+ ^
" [1 e9 T  V  Y+ |4.7.1 图书排名示例 142
* W/ |8 S+ H6 j: H# m
8 T/ n. Y* k/ B4.7.2 同步原语 149
$ ~  r) V/ U$ O$ r! I
. g( i1 ]+ z% ^/ I" o4.7.3 锁示例 149% g- Y% R( j. k
3 h/ a, \. N& u) R7 Z
4.7.4 信号量示例 1568 O$ I3 P1 P4 x( D
/ J8 f( q+ D5 r  ?: K
4.8 生产者-消费者问题和Queue/queue模块 159
  j4 |5 M5 t2 X# g/ {8 b
& u7 Y. b+ J  K. n$ V8 g6 P2 ]4.9 线程的替代方案 162# Q: k! {# w5 {3 h: Q$ c
) O7 j! l7 i0 b: P
4.9.1 subprocess模块 163
+ N3 P' z6 ?5 I: ?" Q
/ z- H+ @$ `4 w4 b4.9.2 multiprocessing模块 163
3 I* K; ]7 f. o/ l; z  Y0 H8 s& l* C3 X
" U$ p. V6 n/ n/ X/ U5 l4.9.3 concurrent.futures模块 163
/ X1 t8 |+ t$ X  N6 G3 V: D" w- W1 U
4.10 相关模块 165
6 ^6 K& o4 A4 Z& w5 g; i6 M! b1 X1 g+ @) K( J/ Z, t" W
4.11 练习 165
. B: d) q  q8 L( @( U& a5 x7 T% ]- U6 @3 k* s
第5章 GUI编程 168; u% J) ~0 R2 E. _$ {9 A
- d0 k- x2 G1 L& l
5.1 简介 169
& @( X: ?- b6 c" T2 v* q% m/ p3 z" N# e
5.1.1 Tcl、Tk和Tkinter 1698 @6 l( A8 G& ^& K- T5 D
" @: M4 g/ \( l. q$ \/ c- u
5.1.2 安装和使用Tkinter 170% X' v- v. z  L" [6 d
7 G' ]5 A* ], A& \8 r& a3 y8 \% ^
5.1.3 客户端/服务端架构 170: s# r5 [0 t' z  q5 V
2 R* I; o) |3 m, v8 b+ ^0 n% T  T2 S% m
5.2 Tkinter和Python编程 170
9 m3 t0 v2 V( \0 ~5 |9 W, S
# Q' u  x5 |8 q3 m" y1 c' t5.2.1 Tkinter模块:添加Tk到应用中 171
7 K% ]0 m, J3 w2 T8 K/ u2 V0 {) D2 |7 j. y+ Y' O$ E
5.2.2 GUI编程介绍 171
; O9 ^# D, G; t3 b( K1 d) ^; U, W2 Y4 F2 O0 t, L, P* P; M/ f
5.2.3 顶层窗口:Tkinter.Tk() 1730 V6 u* t" |, C9 T
3 X% l. W0 f4 i: N# K5 L" s) V
5.2.4 Tk控件 1732 M. z% w9 A( f% w' u& ~
7 J9 n+ _2 G& @; q2 G2 z
5.3 Tkinter示例 1748 S' U  Q8 d8 ^) |
% g. \7 h9 ~& w# `1 \
5.3.1 Label控件 174
8 T+ Z) _6 C# ?3 _1 O- E4 h3 ~7 \
( F2 |3 O" b0 r& p5.3.2 Button控件 175& E5 w* a* Y% z: [3 a6 e
$ E) g  D+ h" E6 A
5.3.3 Label和Button控件 175
6 r1 V% `4 n+ c  s8 H5 V1 j0 g9 [
  [, ?( C5 w. a5 P  s1 H/ S5.3.4 Label、Button和Scale控件 176
0 _) f2 C; w1 N$ A; d& p1 ~" P+ C
5.3.5 偏函数应用示例 178/ O0 y- h# v9 g7 @% `5 n
- ^' }; u; M" Q6 K4 I2 t/ t4 i  I
5.3.6 中级Tkinter示例 1806 G8 E5 ^+ P, y) G) B/ m

$ }1 Y; \! H3 {$ e2 E! P1 R1 U. c5.4 其他GUI简介 185
% E9 U+ ?- [/ j1 K6 j1 M4 {- |: R, ~, R$ c/ x
5.4.1 Tk接口扩展(Tix) 187
* [3 T5 {9 D& d) H
! _8 b$ [  Z" ^8 _0 G! A5 Q8 J- T5.4.2 Python MegaWidgets(PMW) 1889 y0 r5 ]: w' r
. S% V1 Q9 W6 ]  D0 w5 t- \( M
5.4.3 wxWidgets和wxPython 1889 Z: R  d* M7 |& _7 B/ ]$ G* m: m
  v- W6 T$ e9 x8 y# u$ i' P
5.4.4 GTK 和PyGTK 1908 m# ]& u9 ^* K  j' t9 c8 Q

& l: s2 `, G9 g/ `5.4.5 Tile/Ttk 192
3 g- \: _- C( r7 P/ Q/ u7 V
. d" j$ v0 Q8 T  S2 X5.5 相关模块和其他GUI 194: q' D- C! l" o5 }
6 d7 \8 c7 e7 z
5.6 练习 196
; J( c+ X% g0 w7 C, X$ C6 v0 U
第6章 数据库编程 198
9 @+ v) o! u* b+ x$ n0 o% H3 T
7 e) Y( S# @3 F: w3 s5 n" b6.1 简介 199
0 }" r- ^- Z$ K! j# J* C, @2 q  X, e& P
+ P; M7 v7 d6 Y) h7 h6.1.1 持久化存储 199# z" I+ Z8 B5 M5 K1 t

% [! o  t. |! K3 V$ f7 L* k6.1.2 数据库基本操作和SQL 199  c9 M# ^. |! p8 G4 }
& t6 u" M' e& r# u9 Q
6.1.3 数据库和Python 201
( o/ `7 v0 I% r! @5 F
, s: [& `2 {+ p+ t* H6.2 Python的DB-API 203
. x$ @1 R4 _4 D" M; o4 e
* y0 |+ L& s* K2 D( J  L6.2.1 模块属性 2034 y% c! G3 [4 T  l+ M* v" t- ?6 Y
: O/ \7 W* H9 b$ R$ [7 P' `6 I" n
6.2.2 Connection对象 205
6 n7 S6 u2 A" E
* T1 ~% V7 \8 G( h( Z( J6.2.3 Cursor对象 206: k5 x$ ^+ T3 d2 ~$ j3 K

- F7 Q3 T8 g6 {2 u% |$ o* d9 u6.2.4 类型对象和构造函数 207) l) z+ t" S9 x

+ _) s1 i  t0 R) d6.2.5 关系数据库 209/ V! {3 T. N: ?1 S
& k5 s5 e: g5 ^0 C$ s& m
6.2.6 数据库和Python:适配器 2103 }. [8 A6 y3 x1 Q" y
9 x& V- w  {6 T9 }# D7 M
6.2.7 使用数据库适配器的示例 210
! a% z8 ~8 Q9 C7 y) B; M& B4 G) g# Q$ I( J4 r
6.2.8 数据库适配器示例应用 215
& |& s2 V9 b" j. V- W, }' R$ U8 F- B4 ?! ?* G; O7 v
6.3 ORM 2267 P: w9 e; N5 E% q/ e
$ N* P) `6 j. f
6.3.1 考虑对象,而不是SQL 227" g" b1 i% c# H3 b1 Q) u$ _

5 P/ a; z+ ?# N5 a6 ^# K6.3.2 Python和ORM 227
$ B. _; r' ^0 e. O
- C* N1 G! ^! l" ]2 S& m% d/ _6.3.3 员工角色数据库示例 228
; p# ?) |; f% e1 E% O% S5 }5 W
4 o/ J. k1 W$ D  R5 u0 t% l; w6.3.4 SQLAlchemy 229
3 f1 j: H" M; `3 G6 Z; i1 n# R
  Y  J. }& @0 ]0 A+ C& }2 {6.3.5 SQLObject 240
7 a* }/ `3 l8 o9 k' E: {
$ v3 R$ h5 S9 {) _4 l3 T0 u! q$ c6.4 非关系数据库 245, e. ]3 e1 f/ I; }& O

, I  f7 p- {9 Q3 M; ~( y6.4.1 NoSQL介绍 245
; U1 m( @" k5 v# h9 i- X) Q2 w
" Z7 c$ _* [+ {6.4.2 MongoDB 246
8 ?1 `  Y6 e' l9 Z2 F9 u  s" b9 t1 x4 ^6 @9 m( w5 H
6.4.3 PyMongo:MongoDB和Python 246
; ]8 M7 @* G, p
0 t, A8 d4 |9 T8 {( Q9 S5 x( r6.4.4 总结 250
. R9 [) u/ I5 c3 y0 P& a+ p) L
# m. Y7 D+ p& |! |) A6.5 相关文献 250
6 s. `& g3 }  v) M- l1 h  n
: |- |/ @; }# }/ `6 }, C$ o6.6 练习 252
' w" s& H$ a9 u' F3 x0 E- Q1 q5 [8 e$ v8 n* Y* B
第7章 *Microsoft Office编程 256# d1 i5 F/ x& o0 ?+ t

  g* R0 d2 f, L( w$ [' f% ~* U7.1 简介 257
. U3 P% {( j; l
8 a' g: V. Y0 U, v, ?) G( z7.2 使用Python进行COM客户端编程 257- y( m4 u- \* U2 [

; M3 ^% L. P$ L/ r( i7.2.1 客户端COM编程 2589 s6 E+ b* R# ~: r* Y7 p4 b! B# \; @

8 ~$ l5 x4 W4 m7.2.2 入门 258, W! y1 G; Q5 a

$ W, K+ ]9 k/ K; p6 o* l7.3 入门示例 259" C: |1 b% \- r" K- _' Q
, j( j! u1 t- f& z( D# `
7.3.1 Excel 259
# R( i* u( L) a* F* c. A- u& Z7 g$ ?- l0 G6 J  R
7.3.2 Word 261
3 }; V: C, \6 W9 i0 [$ J* P) x! F4 R" A  s
7.3.3 PowerPoint 262
# A$ T. K! b9 h3 `; }& x3 J  E! h* b  U& b0 j- P4 e
7.3.4 Outlook 264# E2 B/ Q; [8 u8 g- A

) F& |- l) t$ i) c8 e& Y  w3 l7.4 中级示例 266
7 |- O& |9 j" M' N3 s
) j1 i, E: B! z, u# Y6 T/ b! C* g' Q8 [7.4.1 Excel 266$ R) H( R$ ?* z# c; N
3 n6 B& K- Y# H* u
7.4.2 Outlook 268) @- [1 @6 ]0 E1 V+ k+ f4 K) o1 b

3 m8 W2 N6 V( \) m" b( y( [7.4.3 PowerPoint 273
9 U$ |/ V7 L5 x; @2 m% F9 E4 s
& o& l* Y! B3 b3 V9 R! n7.4.4 总结 280) j7 }. F6 t7 j) c5 W, o: [

* U1 y5 |- }$ }4 ]7.5 相关模块/包 281) B7 i9 X; d6 h0 a# {6 V

7 A/ c8 V8 y, u% G" P- K7.6 练习 281
  x+ e$ d  \  D/ `# K* D- `+ l) H1 o* |/ |- Q8 E
第8章 扩展Python 286! p5 i0 ]. F( i9 B+ d

% M! P: ~/ z' o2 J3 M# ]8.1 简介和动机 287
9 o% U( L; K; j. M, A- }1 m& e- t9 q; m4 o6 v+ a
8.1.1 Python扩展简介 287) U2 }5 H3 _! L0 w

; C' w3 @& s8 E; A4 v8.1.2 什么情况下需要扩展Python 288
2 f) x* J! F% V. N( h, y% C4 _6 S. g1 r/ K" c; x
8.1.3 什么情况下不应该扩展Python 288' z- ?7 f1 d" z: m- r
6 m  w# b* R& j0 F
8.2 编写Python扩展 2894 d3 d* u( I4 Y0 B8 i
/ j, ^# Y7 K+ W- o* C
8.2.1 创建应用代码 289* B& x) C1 Z0 X
: Y, w4 f6 Y) u
8.2.2 根据样板编写封装代码 291: R; {9 w7 p. [1 Q

; _1 o; T, Y) z6 }8.2.3 编译 296/ ^1 z8 z! i+ L2 k" [/ }& o! Q7 b! f

% z- z5 m6 K5 t  e7 F8.2.4 导入并测试 2977 N4 P4 X9 l/ U
" M2 Y4 \3 }3 _7 c# v: @
8.2.5 引用计数 300; H$ o0 t7 U1 H1 u% [7 u% W

4 f7 C9 n+ r% E& h+ |8.2.6 线程和全局解释器锁 301
9 C4 t! E% s' p1 Y/ T) s* h2 Y& [% N& i, U* \" T4 r! L9 I
8.3 相关主题 302
8 _5 s' S, M0 ^) X' d# ~5 ^5 E
! O5 ?  B6 I" p& n1 n8 k( l8 V# I8.3.1 SWIG 302
, g" s) V7 [" h, g6 `6 J1 D& j7 y* O/ D' o  u
8.3.2 Pyrex 3021 c7 K- O/ o1 P4 k
. `1 V9 K! {3 c, o5 \3 D* |0 J
8.3.3 Cython 302; K( a0 e0 Z, q# ~) u8 V
# O" ?( u- F% o8 Q2 X/ _
8.3.4 Psyco 3032 E& Z0 g9 f4 E: h" o0 r: Q7 m: `
3 l9 q: v" N+ x* K9 J
8.3.5 PyPy 303
+ E4 ~5 G0 r+ ?( j. i; d2 b9 j% I1 b; R& K+ s6 S5 G
8.3.6 嵌入Python 304
7 I; L7 N$ r* @0 @% V6 n
" l9 O& \+ \! ]7 H  T, ^4 D( Q9 v8.4 练习 304
0 ]0 u* K) [, I) v0 U; i% ~; @$ |) e0 v6 Y1 R. g( W

7 l8 r5 M7 f8 y& b! x9 E★ 第二部分 Web开发3 M5 P- x' T$ N& o
' ]+ ]& v  U% ~" F" [% f3 K8 `
第9章 Web客户端和服务器 306& J5 ~0 K' K. O
9 G/ h* Q' w& T: K2 O  @8 c3 G: A' ?9 X
9.1 简介 307
( ~2 I: a' H: {7 D6 I# D
# @$ @0 r1 n/ b9 W# V9.1.1 Web应用:客户端/服务器计算 307
. I6 m* r, [+ _0 F: E2 p
3 ~5 H, \/ W4 g$ k: O0 B- B0 Y9.1.2 因特网 308
! D! |/ g2 W6 @4 o- `- m! @5 y0 k
0 b+ P& s1 G7 r( @: |9.2 Python Web客户端工具 310
# T6 M3 c* \. G4 O# q( z. G: H6 C/ X! v4 ^$ A
9.2.1 统一资源定位符 310: h( o7 j) n+ Z% I3 a9 k2 _+ Q

7 }; V* D. |0 s4 b8 K9.2.2 urlparse模块 312
7 e4 K# D# o/ p9 G- o, w8 B6 z/ Y; R: S! c) `9 s: H4 r
9.2.3 urllib模块/包 313
) \& b; f9 e" j' X. A% y% i6 P6 M3 q9 j  x, `3 q3 c
9.2.4 使用urllib2 HTTP验证的示例 317) Z0 z0 C' s$ W) R
& ]+ i; h, b- d. ~4 y
9.2.5 将HTTP验证示例移植到Python3中 319
- ^0 ?9 I" G* k& _* {
- e5 I2 U+ O  x8 r: O: }9.3 Web客户端 322
7 q. t: e: a% s  }* X5 `7 r
, |+ N9 b  Q/ J* n- }; h, K' H2 E6 `9.3.1 一个简单的Web爬虫/蜘蛛/机器人 3227 }/ V- U( ]/ T9 Z' B

$ l5 B' m2 ^% ^+ i6 v( u9.3.2 解析Web页面 328
1 d/ u" W/ c/ \; C9 Z8 r* N. ^8 x) @) ^- i& x9 x& j! t& p
9.3.3 可编程的Web浏览 333
% l( [5 \/ Y/ p+ P; I* D1 A8 [/ u( X( P1 A& C8 t- }
9.4 Web(HTTP)服务器 3367 l# E+ s9 o! D* Z

  q1 U/ _* k( `2 J9.5 相关模块 339+ H7 n% `2 y5 {7 s/ e

2 o! J3 B- {% \( q& k% G3 F9.6 练习 3417 j4 _% r+ l& i  |

1 C/ R/ m) M* W# s2 `! i& C4 A第10章 Web编程:CGI和WSGI 345) w3 w7 g0 X; L9 H' u
: k' A+ b/ i$ c# x# D
10.1 简介 346
: L% P8 B0 e* C9 m# Y2 U
% f% A! G' _9 m5 |10.2 帮助Web服务器处理客户端数据 346$ J" T, C& e; T5 W4 b0 @3 \% {8 Q/ ^

/ ?; _7 p$ G0 ]( C1 t- m10.2.1 CGI简介 346
; S" x& p5 S3 Y+ r* U: s# D/ B4 B/ {! f% S3 V$ h3 d+ N0 `- h  k
10.2.2 CGI应用程序 347/ ^& l+ @- r5 D8 [0 c! B

% _  N2 X0 r. B5 n4 T- y10.2.3 cgi模块 348# H6 Z' h" @( f5 H
; M$ F' v" m0 s: f- g1 n+ S. [+ p
10.2.4 cgitb模块 348
" N8 \& }+ E* n6 q& _( p5 ^  [& l; v
10.3 构建CGI应用程序 349
% S: i" H4 z3 \7 h. f
$ F; z3 u: M' Z10.3.1 构建Web服务器 349
& C+ o& r* Z. {7 V, y6 i( C3 @6 B: B( t  u
10.3.2 建立表单页 351
" S# r) u3 f2 w! b$ t  ~; L  \2 X, o, B; @) B/ d1 `
10.3.3 生成结果页面 352
9 F- q' v5 s( `' o6 q) ?0 ~0 W/ B1 q8 P* J* b0 H
10.3.4 生成表单和结果页面 353
2 M8 S6 f' v, M1 g
- W, V. H' r) x6 _3 n0 ^0 I6 l3 ?10.3.5 全面交互的Web站点 3575 ?. C' ?* K9 L! [/ S2 r
# v3 y5 C7 a3 r! j$ T. m8 J# `  _' M+ j
10.4 在CGI中使用Unicode 3620 A" Z+ Y4 t, g; c3 P

/ s" i: j" ]5 `, Z4 t2 y- G10.5 高级CGI 364( U! _. o3 U7 F8 P
  ~8 M$ _% ?/ s5 R  u7 Q
10.5.1 mulitipart表单提交和文件上传 364; }6 {( ^2 Z# e9 `- f

; Q! T: y( j, d) B( K10.5.2 多值字段 364
+ U" }  t( n; u  }% A9 ], R) Y" k
10.5.3 cookie 365
7 ~( M+ `2 l" R+ ~6 s6 }! B/ f$ R( ]5 X& t  A: K( W
10.5.4 cookie和文件上传 365: R4 u, j2 a. P6 s* C: ^- u' Z
( i( |; z3 h# n" n2 x9 L
10.6 WSGI简介 373
7 v4 C" F4 r/ g) e6 N
' b! Y; q4 M, S- ]9 W+ w10.6.1 动机(替代CGI) 373
) I' q% X9 e7 T  i% j3 a8 G! Y% V' i# I! a3 Y* \
10.6.2 服务器集成 374
: l/ Y' N# w% \2 I' w& Y
6 s% C0 R8 C4 A6 K, C/ @10.6.3 外部进程 374
3 v; C, Y1 e& V) ^* W/ L
( E2 E" ]4 H  F7 a10.6.4 WSGI简介 3756 ~- K0 d# E2 o7 B# P

# V. G2 b6 g6 E% {0 v* V; S10.6.5 WSGI服务器 376
! l+ I& x4 s( i+ o( G9 v: Q2 _* e* M8 E9 S0 {
10.6.6 参考服务器 3771 J, ?' P; {0 P4 c% m! u

! W+ t% {1 v& z3 W10.6.7 WSGI应用示例 378
% M% o! `( J: f2 z6 Q; y: Y- C$ \; K. x7 m
10.6.8 中间件及封装WSGI应用 378+ C8 r, S( ]" W5 Y. R; N. V
& B- k7 I# U6 p) ~
10.6.9 在Python 3中使用WSGI 379
: ]$ a  p, h) M; S  _0 X
5 r" P* S6 p+ C; i" A2 [$ N/ {10.7 现实世界中的Web开发 3806 e2 f% _' I( A4 s9 |$ v
9 S. C- N2 B3 G. j0 }
10.8 相关模块 3808 C( D2 f3 T- M, {/ l7 M
& B( |9 x$ h+ l. D! q
10.9 练习 381
; S2 _: h* d2 R. U: U; q1 Y* [
: M; S! l3 U# f! h第11章 Web框架:Django 384
' N- ?( Y% L: P7 @) I) f
# f) H3 y0 o) z11.1 简介 3858 r  V) C9 l, x* s% b

3 L" w6 A; N' d" r3 S) o& a+ W, s11.2 Web框架 385( }- ]" t8 Y7 y5 f* f7 |% r; L! y

& M+ y  n0 j% [2 l# U11.3 Django简介 3866 R; @9 z8 w' X$ d6 y
# W1 B5 s/ D6 A
11.4 项目和应用 390
( [9 k, y- F2 i$ M6 H; V# L" I# }9 Z0 z0 p' k
11.4.1 在Django中创建项目 390
5 o4 y* g$ y5 s/ B4 g
7 {, P" |$ F5 \# n& f11.4.2 运行开发服务器 393) i& k) A; `' i! l& y  o

2 ~2 @" L& C; u  G6 N" W2 A6 V11.5 “Hello World”应用(一个博客) 394: ~$ g& a% S' K8 d; Y7 m- C
0 y# U  s5 |0 u5 h
11.6 创建模型来添加数据库服务 396
( ?" p, M! o, h" k
0 K  c9 L7 D7 A/ \5 Z0 V/ p11.6.1 设置数据库 396
% |: E# d: `4 f5 }& J0 x
" E  q/ v' D) ^0 s11.6.2 创建表 3983 i6 K5 F/ v! k5 \! s) Y: u

, J+ B, o9 Q6 R( o" Q& h11.7 Python 应用shell 4007 n6 T7 i. f% }) N& D5 u

5 r5 k# c0 {' q5 R( l11.7.1 在Django中使用Pythonshell 400
( a+ S* _' a5 v/ r
) p# L. R  D/ ]& v( i11.7.2 测试数据模型 402& v5 X2 f7 t; K! h' n2 p
7 p( F) i# Z$ G! p
11.8 Django管理应用 403
0 B3 [8 ]' j5 C2 ^0 J4 n9 z  B0 x- ?0 ~0 n# @
11.8.1 设置admin 403
  c4 I$ A7 u3 j9 h1 v
( v- O% z% N1 u4 n7 V- `11.8.2 使用admin 404: ]) P- F4 L- E

2 O; k! {/ A% A3 v  [! C$ X11.9 创建博客的用户界面 410, G3 n/ o8 q. J
" }$ @3 t+ G5 t5 U, b
11.9.1 创建模板 411
& `5 O$ m9 V1 F5 P1 [3 p4 @( b# i- O. w) N( b3 M
11.9.2 创建URL模式 412
: ?0 J2 e3 i+ O) c: E) f# N* ]5 ?+ _* w% c
11.9.3 创建视图函数 415
) O/ ~7 x; G; n  p" c6 k% W/ Y% I1 L) I5 d
11.10 改进输出 418& j3 g" H4 F1 g, Y, _* U6 S

1 b( n* y, `# H7 K) T3 q" J$ V+ s11.11 处理用户输入 4224 K0 K" j# a% z& K

# ~  x: U0 {7 W% i& O- y11.11.1 模板:添加HTML表单 423
' j# V. F8 Y. J! N* r! R; G# `! Z4 i4 ]2 l' I
11.11.2 添加URLconf项 423/ X3 L. D  P+ L& {8 {; T2 I
) ?; U/ N& }8 a. ^+ D
11.11.3 视图:处理用户输入 423
; a- w% P) z5 o3 }- S
6 n6 Q, ^9 H1 ?5 F4 x7 n* L11.11.4 跨站点请求伪造 424/ A9 E( |( `9 F1 z1 Q
2 x! P# v5 k  ^+ p  l3 T& o
11.12 表单和模型表单 426
1 |- r! C! _+ |9 \! f: B9 }
* f3 c% Y6 r# e) k& K" E1 e11.12.1 Django表单简介 426; l3 q) E  ?2 r2 t2 |. \

7 U4 J( O* d7 l" F/ S( f5 c11.12.2 模型表单示例 427
! o+ n% f  y% h* p& F, P6 h
, t/ ^0 m4 P& u. W2 E11.12.3 使用ModelForm来生成HTML表单 4271 M' E3 a6 _+ f9 Z

. r9 _; A8 Q; k0 M5 `11.12.4 处理ModelForm数据 428& o+ I# ^* Q. [8 s2 }5 z6 Z5 a

( K  R6 ~/ q) u0 u6 |" X1 D! p$ c11.13 视图进阶 429
. G5 K; D! O* p, v/ r) X; |8 T1 m$ ^
11.14 *改善外观 431( Q0 n, v9 `& D+ s- d- x, a. w& f
/ m" x2 ?9 G; B& w0 Z# M
11.15 *单元测试 432
! [! N; G! Q, Z. s/ ~3 ]  S* \5 S% t: d& Q
11.15.1 blog应用的代码审查 434
, @9 z! k2 |" E2 j$ K. D
% e" U4 Z& Y! ?+ C11.15.2 blog应用总结 4397 h2 o, f$ {0 U5 j5 M" z$ a

' T3 b; z* @  z/ N11.16 *中级Django应用:TweetApprover 439
$ m4 g- d4 h- Q# G& \# h% }' y! }* C8 C% ]% ]; v; j# Z
11.16.1 创建项目文件结构 440
  ^6 S3 z9 D$ U9 C; o9 W# f% }; V8 Q( M* Y& l
11.16.2 安装Twython库 4451 S0 P0 \% b5 y- v8 m
( [/ Q2 A$ x1 K% c3 Y& v
11.16.3 URL结构 446
. P6 N. ^8 G) i7 h2 S, \6 M- t2 y5 H! x/ N! c
11.16.4 数据模型 449! W) i9 P& o4 M' j
5 P. s( M* t. M; m5 _. J
11.16.5 提交新推文以便审核 4536 F7 F. r* N  o0 S- _- E
: \! m! V0 f; A: D) M7 g" T# W2 }: g
11.16.6 审核推文 457. _3 Z1 H3 H* m9 I" i" p; P- z
; S* B+ H# V3 a4 S' W% ?4 b  t: D
11.17 资源 4653 p. i2 J: K- W# u

0 F" `  Y) K/ G1 Q0 B. F11.18 总结 465* u3 `4 f! {2 \3 d' B* z2 U

. [( I# T; W, Y. J. d11.19 练习 4666 m3 t$ k7 j& G& J$ _9 D
! C2 q. L' D4 ~) J6 h
第12章 云计算:Google App Engine 470
9 y* w2 @, n( g3 n  l) |# o0 `" s) N" g7 J* m
12.1 简介 471
5 Z' U5 K) C, y' Y; F! n3 }1 N* x  L$ c. Z/ _# K2 [; I% @) `* o3 s
12.2 云计算 471
. C' F4 N' o- ^! E
) F& u2 B) n3 u7 W) a; [12.2.1 云计算服务的层次 472
& y1 E9 T# J8 [' o6 g7 {) I: p$ q. F5 Y: [
12.2.2 App Engine 473
0 Q- x2 C3 Y5 w) A1 K) q
6 M4 m9 e% |" m/ Q12.3 沙盒和App Engine SDK 476! G8 k/ o7 n+ R: g
0 u7 R1 x/ c$ d' `- q8 c
12.4 选择一个App Engine框架 479
1 R! y2 X5 y& e- f# V7 k
, C% r8 T5 [7 L  N. m9 `12.5 Python 2.7支持 485: J+ c' T* J+ \" d
8 y0 @( i' Z! u9 Y3 N# z
12.5.1 一般差异 4860 P1 h: C' T' O4 c

4 u& [0 o3 y5 ]  r12.5.2 代码中的差异 486; i$ E9 l1 e! W" v0 Q
9 k4 r9 F' ^& v8 q5 N+ E4 B
12.6 与Django比较 487# X6 W1 d8 }" _8 ~+ ^' W
$ Z6 h: F& k. P0 E: G9 w' M" o+ S
12.6.1 开始“Hello World” 487
& E! d+ j# U5 }7 D: s2 Z" A8 F; {! ?
; \5 `: l$ S9 w- V0 |12.6.2 手动创建“Hello World”(Zip文件用户) 488( b+ _9 H0 Z1 H' f- F
  R' I- Q# t, o- {) [
12.7 将“Hello World”改成一个 简单的博客 489
" T2 n% m) _" ]: s; t# r
) I3 {1 G% h1 I0 M$ O8 ^8 _12.7.1 快速发现改动:30秒内将纯文本转成HTML 489# z+ C$ a) R$ g, a; y* c
+ z; Z5 L( A8 ~7 d) x
12.7.2 添加表单 490. _3 P; Z9 P; p2 j$ g
6 S2 J* d1 {% _
12.7.3 添加Datastore服务 492
9 q" ]  H% F8 c* S$ F  n: q, n& H3 K
12.7.4 迭代改进 496' S) t, K1 W. _8 Y. v+ Y, Q

+ G: n/ x/ p/ U  G3 r5 ~12.7.5 开发/SDK控制台 496; ~5 I2 b0 D3 y! \- U) F6 v+ Y
3 I7 K5 s/ f5 l" g; y
12.8 添加Memcache服务 502
1 i) G& l6 @/ m) P4 j2 E3 b
& ~( r8 a# \9 m4 t. V2 w" T12.9 静态文件 5053 N  m, X! S& T

! ]: D) g/ X: Z6 H# _. R12.10 添加用户服务 5050 [2 f% W- l9 x5 H4 b2 Q

* }5 l* f; k% }, P) }7 c: {12.10.1 Google账号验证 5069 M% E* i5 T) z/ I2 G, z
, M* G+ J- {) M
12.10.2 联合验证 507
; D0 e( T, ?# x$ N2 @( Z( `3 _1 ]: J( w  ?6 Y
12.11 远程API shell 507
4 U/ K' ~( Z1 W
9 a- M* X( j0 @12.12 问与答(Python实现) 509  }5 a1 \; `4 u; U

1 f# p. M. |% A: d12.12.1 发送电子邮件 509
8 W# n! a; T1 ?6 J
, p- T& n. W6 R; {( K, d12.12.2 接收电子邮件 510# H1 i1 G+ `& I# p
0 o5 B9 {8 i/ A; G( ~! H& G9 B
12.13 使用XMPP发送即时消息 512
. c! ?& W  U# i+ P: S  l' a7 L# D1 {4 X# z: s' K3 t0 b/ T
12.14 处理图片 514( @+ w: v& m: f& ]

# v" ^& c* \# o6 ~% Z) p9 ~( ?& \12.15 任务队列(非定期任务) 514: s/ h( a, @3 b! B* g
9 {) Z5 }4 n1 J0 W6 E( b
12.15.1 创建任务 5157 a1 e8 k4 F- u% o; W

. |  y  Q8 \" i9 X12.15.2 配置app.yaml 515
. M- _+ M" @  p& G6 [. Y/ I
$ {# g2 ]$ S7 `. i( p$ z: c12.15.3 其他任务创建选项 516  [; `! }; X( E* E' i
  a3 h# C0 y' u1 E1 v2 g
12.15.4 将发送电子邮件作为任务 517
0 r: B5 Y( b/ W+ y/ D- [; _0 `+ y/ T. S) R3 m/ E& z& a
12.15.5 deferred包 519
) `2 R3 s" ?( P* a& h" a1 L& `( \' a8 k7 q$ |2 d6 ~* O
12.16 使用Appstats进行分析 520/ E9 `9 q3 t7 \" J8 A* V- }4 a' L, p
6 Y1 ?2 c; Z, O+ @( S
12.16.1 在app.yaml中添加标准处理程序 521
" Q2 F4 F. A& x6 [
& e8 R- J5 z; z- G, u12.16.2 添加自定义Admin Console页面 521
+ |% g7 A* c$ k& I1 B0 [
, j- q1 K" r0 `: X3 i12.16.3 作为内置界面启用界面 521
0 ~* o" f1 m: K: s: ]4 R" Z
& o  U' \6 \9 e: T1 p7 K/ S12.17 URLfetch服务 5228 a( `. l7 Z- ^
; ]' w5 ]+ B$ p  N" U
12.18 问与答(无Python实现) 522
, F+ N, M2 G6 ^, T# p7 h) Y; O7 g
/ l! D+ Z) T( W) i12.18.1 Cron服务(计划任务作业) 523$ `$ A2 k2 F; ^
0 @( n2 Z  u  q& p: ?
12.18.2 预热请求 523
6 a  t! M7 @: M6 y, a3 S) z0 H8 k$ q
12.18.3 DoS保护 524! y9 M/ b; Y  Y3 d# y

" T# d/ j4 |; Q$ y' s" H12.19 厂商锁定 524
+ X3 j6 W" L) x: K- w3 y* w' W
5 N2 ]6 P: o7 ^8 w! E$ D( H12.20 资源 525
. E! F# _+ v7 A* x1 G! E; @' o3 [5 @  X
12.21 总结 526
+ t% W3 E* r& x4 }
* ~/ Y& ^3 S) |" }: M12.22 练习 527
8 X& S6 e- T3 r' H# R0 i; h" K' ^5 R# ^1 C. v0 F: _+ Z  o
第13章 Web服务 530
3 P5 F4 M: Q2 @7 Q1 }. p2 u" s! q# X3 M) U
13.1 简介 531' A- B0 y) H2 V/ a6 m, ]

8 H+ A. @/ s8 p! ^13.2 Yahoo!金融股票报价服务器 531
8 q( g. y9 U3 w. F4 ~( Z) j
: a9 g, K3 `9 [- _6 b7 L13.3 Twitter微博 5342 L, S" m, i  f( [* |" G
9 v6 y7 P* {( U2 w' l
13.3.1 社交网络 534) h  U. J; e" H
* W& Y4 v! }5 `8 s3 ~/ o6 y- p' b
13.3.2 Twitter和Python 5359 [! L  f+ {3 G- K
( Q( B2 F* F% U: G& l
13.3.3 稍微长一点的API组合应用示例 537
0 ]6 O- [3 r* d. }6 h$ M9 e/ U, l7 l+ D# d( l. P+ X- U" B
13.3.4 总结 547
3 ]. H& e8 n( _/ L/ r& Z: J: F+ y, H2 g# y
13.3.5 额外在线资源 548% X. J; |, ^6 C4 g$ ?0 t' K
0 A% R* M2 L( k" T' j
13.4 练习 548" w7 G; {8 Q5 S1 _) o
0 D4 f- \! D1 c. E4 c* Q
+ Q. b- {; V% c: U) t
★ 第三部分 补充/实验章节
' [5 |; p/ F7 h+ L2 m7 \: I: L+ c0 M& M/ ~6 ^
第14章 文本处理 553! W! [1 a% X" s& w. `

3 m' Z. M: Q2 B+ p5 T14.1 逗号分隔值(CSV) 554
6 }* D8 V2 ^- D3 M  ]# W7 Y. K3 G( Z( a( ]6 K2 Y. J
14.1.1 CSV简介 554
/ Z  o% T& c% s4 h. ?9 C3 d- U& K6 `) ]2 o: T7 `1 D
14.1.2 再论股票投资组合示例 556
4 P/ a9 r7 b+ W% ?# \, c
7 `, X  ?7 h. m% U% Z* b14.2 JSON 557  \) n6 t4 Q: Y/ G. F9 U
% }  ~, X5 I& ]7 D9 H% }% i
14.3 可扩展标记语言 561
1 D( q3 g- D- p( M# h8 A6 z' s7 h2 |
) v. T; E: w: E' H+ b( f. U14.3.1 XML简介 562
2 v' M+ r3 J) j1 o, f
1 j- U9 M" M; U2 e14.3.2 Python和XML 562
" k4 }6 x0 R7 B& L! y9 t5 Z5 a8 X/ M8 X& _/ ^/ ?
14.3.3 XML实战 5666 {6 o. b+ R/ {+ P

: y! |2 F; E5 k' F! m  Q- [14.3.4 *使用XML-RPC的客户端-服务器服务 569
7 b, V. `- X; ]' Q% t" R; K" S5 Q# V/ A$ P+ b9 s0 h3 P
14.4 参考文献 573
/ S5 W  E, [/ e+ v# S. n
$ l1 q' [$ N* P! k2 I9 n8 p9 B! P14.5 相关模块 574
7 l6 Y0 t8 U& P+ k) _$ L8 z7 M
14.6 练习 5743 p4 M+ L6 g* ?8 G

9 e$ h- o1 F0 E第15章 其他内容 577
" Q5 ~$ U; ]' E% \1 J4 t, D0 ~( {4 d- T7 T
15.1 Jython 578. z' ?9 c7 n6 e
. p* |6 n8 B. m7 d
15.1.1 Jython简介 578( ~7 h7 t6 [! L
: t1 Y0 h- b& o/ [
15.1.2 Swing GUI开发示例 579
3 D) ~; W2 m& d% @% p, h  T, A3 w9 x- O5 @1 ?0 G, k: N! H
15.2 Google 5818 ?, O0 t: `, z8 w% k8 h  T7 f
( I1 S/ T7 K. |  u
15.2.1 Google 平台简介 582
/ ]" E0 j1 F6 m. i1 L1 W
* W) F- J; O7 z2 V15.2.2 Python和Google API 582/ }0 P+ ~$ g1 I  ~) U
5 r+ z; g' Q9 t
15.2.3 一个简单的社交媒体分析工具 582
8 K9 q3 k1 m+ ?1 z: b/ c6 \
- I& h+ A2 ?- j( ~; m; ~# _15.3 练习 590
" v4 u9 h7 n  ?
. q9 j; \# T1 c) c6 u! x6 x/ [/ ^*附录A 部分练习参考答案 593
8 p5 J' G7 W; C* F( y  M4 F; ^3 U, T% S
*附录B 参考表 597
8 f  [0 f5 `1 `. S* g1 @
& E. [* R& c" |& h1 BB.1 Python关键字 5972 L) B+ ?  s+ [( n& [1 {$ Q8 ?
5 x* L5 I2 T9 n; z/ ^  x, h
B.2 Python标准操作符和函数 5986 d8 f5 b% p2 L  [3 \# u
1 r% N+ r+ M( d6 \$ ^
B.3 数值类型操作符和函数 5997 F$ z# J3 e# L/ f0 Z0 I; z3 K0 M: ?

$ G  w# `# ~5 o$ tB.4 序列类型操作符和函数 600
! m3 h- e1 Q/ s9 F1 {6 M" F$ r5 |* b2 W; Y
B.5 字符串格式化操作符转换符号 6023 N3 a  f5 N8 Z9 y+ n) w1 H

9 q# p4 e/ g4 B  `# i8 M( JB.6 字符串格式化操作符指令 603
  m+ A% C( t' C' Q5 v" U
/ X) r$ L$ l$ N" CB.7 字符串类型内置方法 603
+ v" g2 K7 Y( c  _) T3 w  V2 f4 H+ k; y$ _
B.8 列表类型内置方法 605" q2 h# S8 \, L; h( n0 S

1 ]  s( D$ S. }6 t, _) E1 KB.9 字典类型内置方法 605
% T- C# {) ]/ v* h3 E' B1 Z. ]! x8 V; h& y
B.10 集合类型操作符和内置函数 606
* X1 _6 P* ~  X/ Q& W
. |( |- K( L. G- ^9 R2 PB.11 文件对象方法和数据属性 607* ~, @* Q% C- R+ o6 q

" b6 U- X& x2 @8 r. @6 OB.12 Python异常 608: @6 l4 V5 [! V, B

8 r1 k2 V+ e, ?  b5 d9 q+ U" xB.13 类的特殊方法 610% |# A* a3 H" m1 A  q1 r4 m5 t- V( ?
( s! X+ `  V) r; e6 p' k* }: Q' M
B.14 Python操作符汇总 612
4 \+ W+ K% I/ o, P. c6 @( F, L& }% E. _2 N! L& O( F7 m" ?3 N
*附录C Python 3:一种编程语言进化的产物 614
4 C$ v" O( b5 h/ J, J: y3 Q- m" D5 X3 G+ m5 `3 q
C.1 为何Python在变化 614
; \# h4 i) X8 M( W) x" w7 I9 h( @! Z  Y! j2 H) Y+ w6 j
C.2 都发生了哪些变化 615
& ~. N. K: N3 C, J4 z' c7 x
( r# U# h% n) l5 @C.2.1 print变成了print() 615
+ n4 ]" p& t* U" k" ]+ c$ A: y  S" G& C1 O
C.2.2 字符串:默认为Unicode编码 616
" |, G1 o% u, C% f9 h- r; W% {8 L4 X; Y& a) h/ O3 L
C.2.3 单类类型 616" q3 W4 e! V# ^: y8 {
" Z: ~! C+ n4 {1 x/ n; G
C.2.4 更新异常的语法 617
% c9 M+ e. K. }5 ]" a. \1 V3 C7 n# Y" [$ t# i$ ]& B6 G
C.2.5 整数的更新 618
9 ?& [  x8 s) [0 }4 H, R, o' Q( |' P& X! w
C.2.6 迭代器无处不在 619
7 a4 z7 G7 P( C" w; I, P$ e$ |
! I' D8 h. z9 ^C.3 迁移工具 619
5 j, Q3 L6 P0 E# O0 W! I- \/ q* A6 j  H
C.3.1 2to3工具 619# b4 f" r/ T8 a) z1 N, r8 s" c% V

3 e$ O4 J5 e6 A2 H3 k( ^: T* |8 ~C.3.2 Python 2.6 620
( P6 q' l5 ^- C  T: Y$ q" x" ~3 n# b' c7 F
C.4 结论 620
' L$ `) _0 s; J: L* E" ^% a( f  f! f# a- w
C.5 参考资料 620
. O( p0 k$ u) b; g& q
, k6 G$ _. |9 g: Z*附录D 利用Python 2.6 向Python 3迁移 622
5 E: G# l* j; Q+ ^; _; D+ a, ~0 b; @. v- N4 D& z
D.1 Python 3:Python的下一代 622
& {6 k6 s. ^3 {: F; X2 ^4 J3 K7 [
) p% }7 a' ?4 fD.2 整数 6234 W; {2 A- k0 _, _' i- z- Z' ?
( K7 Q2 F5 n9 Z9 v: `
D.2.1 单整数类型 624- k( r6 P9 \6 X- }6 m
8 o; {' p* o0 w1 T0 a4 O4 q9 I0 C/ H
D.2.2 新型二进制和改进的八进制字符 624- J: o2 l1 q0 [8 w8 G- V
" p! G, X5 v" d1 J. [' ^
D.2.3 经典除法或真除法 625' ~; f" D* e* `' [

2 Q$ C: @4 T4 L* cD.3 内置函数 6263 T7 x4 R/ R4 o* B
: R! V, w0 x. d, R8 Y6 r
D.3.1 print语句或print()函数 626
, s6 R  C$ I4 C" ]. ]: @  M" O; `3 K/ |
D.3.2 reduce()转移到了functools模块中 627
, B( B0 O, C" D' [# S1 {, {- h) h" }  `
, Y0 P" c. E. ^" G0 TD.3.3 其他更新 627
+ x6 S; `4 q1 d+ j; g+ }2 V
5 ^9 W0 n; V) p" }D.4 面向对象编程:两种不同的类对象 628
$ c3 ]5 `6 K5 O. R3 G0 X' ^' d& L
0 w* X& e; r* ^+ s+ {" \3 Y% ]1 MD.5 字符串 629- x$ u/ @& E) Y0 i
0 D, U' v8 v  ~/ Y8 q
D.6 异常 630' G8 u+ q4 i! f' l4 u1 D) g+ ]

8 {  w; L4 V1 }* u9 c8 M: a/ BD.6.1 处理异常(使用as) 630
1 {- k6 v) i/ U' ]8 m# {- W  ]" H, ]
. v! |# ?. |2 p% MD.6.2 抛出异常 630! N9 G& h# ]% m8 F1 u7 V: m

& ^& X+ t0 r( M" PD.7 其他转换工具和技巧 631
5 r" G! K+ t; J% U% U
6 I- e7 u' |$ O6 @# s" R( w" _: ID.8 编写兼容版本2.x和3.x的代码 6328 u" y. {0 q2 N# Y

4 K) e" M$ u6 p* y4 n7 Y/ RD.8.1 对比print和print() 632
3 W- V. _0 ~4 f% h5 b- q$ q: M- H% Y% C6 R8 }1 [
D.8.2 将你的方法导入解决方案中 633
# V- j! W# `8 s2 G% c
: a$ Q  `5 F8 D8 qD.8.3 整合在一起 634
$ _& |6 q. g& {# c3 N9 \
( i: n7 o: C! ~1 h$ QD.9 结论 635' o6 G1 D1 ~" D4 V1 Y! p) T
# N, Q' ~, ]  k6 t% A6 u
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-3-9 21:59:26 | 显示全部楼层
这本书值得入手吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-22 20:46:25 | 显示全部楼层
本帖最后由 田螺 于 2018-4-22 20:54 编辑
8 B. o7 @1 {7 B5 Z) Z9 d
大头目 发表于 2018-3-9 21:59
& u( n) A* N4 ?( N* J/ a" g3 W这本书值得入手吗
, Q% k8 i. ~% x0 |  @$ g  S
! j: ]5 l% l  Q$ b
估计拿到也是当天书看 基础差。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-23 23:00:37 | 显示全部楼层
肯定是好书,可是看不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-26 12:27:06 | 显示全部楼层
这本书是python2代码风格我不是很喜欢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-5 15:38:13 | 显示全部楼层
alvinwan 发表于 2018-5-23 23:00
5 |+ }5 ^" J% W肯定是好书,可是看不懂

9 ~1 ?4 q+ a4 p5 e. ~  J晋级阶段适合 2008年出版 有点老
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-17 09:28:29 | 显示全部楼层
谢谢推荐 表示已经入手了看不懂,,,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-18 09:25:37 | 显示全部楼层
想买
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-25 09:34:58 | 显示全部楼层
谢谢分享     这本书太好了        我正好需要
3 x. A$ w9 y( F4 K, W! K! @/ x9 {
' g: n8 D. s( q. K
不知道这个适不适合刚刚入门的小白呢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-14 14:11:20 | 显示全部楼层
看过电子版的之后,觉得这本书更应该叫做python编程应用,初学者不适合入手,不过里面涉及的内容还是讲的很详细的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-16 13:27:05 | 显示全部楼层
真本书很烂,翻译上很多错别字,代码格式问题。英文原版的话当我没说
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-24 16:48:57 | 显示全部楼层
这本书适合有一定基础的人阅读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-6 23:53:22 | 显示全部楼层
这本书有没有视频讲解?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-24 22:30:19 | 显示全部楼层
好书要收藏,不管看不看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-2 14:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表