python 开发网页开发 有没有分层的概念

Python 3程序开发指南_百度百科
关闭特色百科用户权威合作手机百科
收藏 查看&Python 3程序开发指南
Python3 程序开发指南一般指Python 3程序开发指南 本词条缺少概述、信息栏、名片图,补充相关内容使词条更完整,还能快速升级,赶紧来吧!
书 名:Python3 程序开发指南Python3 程序开发指南作 者:MarkSummerfield[美]
译 者:王弘博,孙传庆
出 版 社:人民邮电出版社
出版时间:2011年2月
I S B N:978-7-115-24507-6
页 数:518页Python是一种脚本语言,在各个领域得到了日益广泛的应用。本书全面深入地对Python语言进行了讲解。
本书首先讲述了构成Python语言的8个关键要素,之后分章节对其进行了详尽的阐述,包括数据类型、控制结构与函数、模块、文件处理、调试、进程与线程、网络、数据库、正则表达式、GUI程序设计等各个方面,并介绍了其他一些相关主题。全书内容以实例讲解为主线,每章后面附有练习题,便于读者更好地理解和掌握所讲述的内容。
本书适合于作为Python语言教科书使用,对Python程序设计人员也有一定的参考价值。Mark Summerfield,Qtrac公司的所有人,同时还是一位在Python、C++、Qt以及PyQt等领域卓有专长的独立培训专家、顾问、技术编辑与作者。Mark Summerfield撰写的书籍包括《Rapid GUI Programming with Python》以及《Qt:The Definitive Guideto PyQt Programming》(Addison—Wesley,2008),并与Jasmin Blanchette共同编写了《C++GUI Programming with Qt 4》(Addison—Wesley,2006)。作为Trolltech的文档管理者,Mark创立了并负责编辑Trolltech的技术杂志《Qt Quarterly》。在本书中,一流的Python程序员Mark Summerfield展示了如何充分利用Python 3的功能与特性来编写代码。与以前的版本相比。Python 3功能更强大,使用更方便,语法更一致,表达能力更丰富。本书将编写程序、使用标准或第三方Python 3库、创建新的专用库模块所必需的所有相关知识整合到了一起。   作为一名具有多年Python使用经验的程序员,Summerfield在本书中为读者深度分析与讲解了从其他途径无法获取的Python3使用与开发技术。Summerfield从Python的“优美核心(beautiful heart)”(即编写高健壮性、高性能程序的8个关键要素)开始进行讲解,并以这些关键要素为基础,介绍了有助于增强程序开发实用技能的新主题,每个主题都包含其概念和多个操作实例。   本书既可以作为Python编程指南,也可以作为Python语言参考手册。 第1章 过程型程序设计快速入门 1
1.1 创建并运行Python程序 1
1.2 Python的关键要素 5
1.2.1 要素#1:数据类型 6
1.2.2 要素#2:对象引用 7
1.2.3 要素#3:组合数据类型 9
1.2.4 元素#4:逻辑操作符 12
1.2.5 要素#5:控制流语句 16
1.2.6 要素#6:算术操作符 20
1.2.7 要素#7:输入/输出 23
1.2.8 要素#8:函数的创建与调用 25
1.3 实例 27
1.3.1 bigdigits 28
1.3.2 generate_grid 30
1.4 总结 33
1.5 练习 35
第2章 数据类型 38
2.1 标识符与关键字 38
2.2 Integral类型 41
2.2.1 整数 41
2.2.2 布尔型 44
2.3 浮点类型 44
2.3.1 浮点数 45
2.3.2 复数 48
2.3.3 十进制数字 49
2.4 字符串 50
2.4.1 比较字符串 53
2.4.2 字符串分片与步距 54
2.4.3 字符串操作符与方法 56
2.4.4 使用str.format()方法进行字符串格式化 62
2.4.5 字符编码 73
2.5 实例 75
2.5.1 quadratic 75
2.5.2 csv2html 78
2.6 总结 82
2.7 练习 84
第3章 组合数据类型 86
3.1 序列类型 86
3.1.1 元组 87
3.1.2 命名的元组 89
3.1.3 列表 91
3.1.4 列表内涵 96
3.2 集合类型 98
3.2.1 集合 98
3.2.2 集合内涵 102
3.2.3 固定集合 102
3.3 映射类型 103
3.3.1 字典 103
3.3.2 字典内涵 110
3.3.3 默认字典 111
3.4 组合数据类型的迭代与复制 113
3.4.1 迭代子、迭代操作与函数 113
3.4.2 组合类型的复制 121
3.5 实例 123
3.5.1 generate_usernames 123
3.5.2 statistics 126
3.6 总结 130
3.7 练习 131
第4章 控制结构与函数 133
4.1 控制结构 133
4.1.1 条件分支 133
4.1.2 循环 135
4.2 异常处理 136
4.2.1 捕获与产生异常 136
4.2.2 自定义异常 141
4.3 自定义函数 144
4.3.1 名称与Docstrings 148
4.3.2 参数与参数拆分 149
4.3.3 存取全局范围的变量 152
4.3.4 Lambda函数 153
4.3.5 断言 155
4.4 实例:make_html_skeleton 156
4.5 总结 162
4.6 练习 162
第5章 模块 165
5.1 模块与包 165
5.1.1 包 169
5.1.2 自定义模块 171
5.2 Python标准库概览 181
5.2.1 字符串处理 181
5.2.2 io.StringIO类 182
5.2.3 命令行程序设计 183
5.2.4 数学与数字 184
5.2.5 时间与日期 184
5.2.6 实例:calendar、datetime与time模块 185
5.2.7 算法与组合数据类型 185
5.2.8 文件格式、编码与数据持久性 187
5.2.9 文件、目录与进程处理 190
5.2.10 网络与Internet程序设计 192
5.2.11 XML 193
5.2.12 其他模块 195
5.3 总结 196
5.4 练习 198
第6章 面向对象程序设计 200
6.1 面向对象方法 200
6.2 自定义类 204
6.2.1 属性与方法 205
6.2.2 继承与多态 209
6.2.3 使用特性进行属性存取控制 211
6.2.4 创建完全整合的数据类型 213
6.3 自定义组合类 225
6.3.1 创建聚集组合数据的类 225
6.3.2 使用聚集创建组合类 231
6.3.3 使用继承创建组合类 237
6.4 总结 244
6.5 练习 245
第7章 文件处理 247
7.1 二进制数据的读写 251
7.1.1 带可选压缩的Pickle 252
7.1.2 带可选压缩的原始二进制数据 256
7.2 文本文件的写入与分析 263
7.2.1 写入文本 263
7.2.2 分析文本 265
7.2.3 使用正则表达式分析文本 268
7.3 写入与分析XML文件 270
7.3.1 元素树 270
7.3.2 DOM 274
7.3.3 手动写入XML 277
7.3.4 使用SAX分析XML 278
7.4 随机存取二进制文件 281
7.4.1 通用的BinaryRecordFile类 281
7.4.2 实例:BikeStock模块的类 289
7.5 总结 292
7.6 练习 293
第8章 高级程序设计技术 295
8.1 过程型程序设计进阶 296
8.1.1 使用字典进行分支 296
8.1.2 生成器表达式与函数 297
8.1.3 动态代码执行与动态导入 300
8.1.4 局部函数与递归函数 306
8.1.5 函数与方法修饰器 311
8.1.6 函数注释 314
8.2 面向对象程序设计进阶 317
8.2.1 控制属性存取 317
8.2.2 函子 320
8.2.3 上下文管理器 322
8.2.4 描述符 325
8.2.5 类修饰器 330
8.2.6 抽象基类 333
8.2.7 多继承 340
8.2.8 元类 342
8.3 函数型程序设计 346
8.3.1 偏函数 348
8.3.2 协程 349
8.4 实例:Valid 356
8.5 总结 359
8.6 练习 360
第9章 调试、测试与Profiling 361
9.1 调试 361
9.1.1 处理语法错误 362
9.1.2 处理运行时错误 363
9.1.3 科学的调试 367
9.2 单元测试 371
9.3 Profiling 377
9.4 小结 382
第10章 进程与线程 383
10.1 使用多进程模块 384
10.2 将工作分布到多个线程 388
10.2.1 实例:线程化的单词寻找程序 389
10.2.2 实例:一个线程化的重复文件发现程序 392
10.3 总结 396
10.4 练习 397
第11章 网络 399
11.1 创建TCP客户端 400
11.2 创建TCP服务器 406
11.3 总结 412
11.4 练习 412
第12章 数据库程序设计 414
12.1 DBM数据库 414
12.2 SQL数据库 418
12.3 总结 425
12.4 练习 425
第13章 正则表达式 427
13.1 Python的正则表达式语言 428
13.1.1 字符与字符类 428
13.1.2 量词 429
13.1.3 组与捕获 431
13.1.4 断言与标记 433
13.2 正则表达式模块 436
13.3 总结 444
13.4 练习 445
第14章 分析简介 446
14.1 BNF语法与分析的术语 447
14.2 手动编写分析器 451
14.2.1 简单的键-值数据分析 451
14.2.2 播放列表数据分析 454
14.2.3 Blocks域特定语言的分析 456
14.3 使用PyParsing进行更Python化的分析 464
14.3.1 PyParsing快速介绍 465
14.3.2 简单的键-值数据分析 468
14.3.3 播放列表数据分析 470
14.3.4 分析块域特定语言 471
14.3.5 分析一阶逻辑 476
14.4 使用PLY进行Lex/Yacc风格的分析 481
14.4.1 简单的键-值数据分析 483
14.4.2 播放列表数据分析 485
14.4.3 分析块域特定语言 487
14.4.4 分析一阶逻辑 489
14.5 小结 493
14.6 练习 494
第15章 GUI程序设计介绍 496
15.1 对话框风格的程序 499
15.2 主窗口风格的程序 504
15.2.1 创建一个主窗口 504
15.2.2 创建自定义对话框 514
15.3 总结 517
15.4 练习 518
新手上路我有疑问投诉建议参考资料 查看保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
单击提交则表示您同意developerWorks
的条款和条件。 .
所有提交的信息确保安全。
developerWorks 社区:
我的概要信息
选择语言:
本文我们稍稍休息一下,暂不讨论编写代码的问题,而来谈谈第十届 Python Web 服务专题会议上发生的一些事情。
(), 首席顾问, Fourthought, Inc.
Mike Olson 是
Fourthought Inc.的顾问和合伙创始人,该公司是一家软件供应商并专门提供企业知识管理应用程序的 XML 解决方案方面的咨询。Fourthought 开发的
4Suite Server是供 XML 中间件使用的开放源代码平台。您可以通过
与 Olson 先生联系。
(), 首席顾问, Fourthought, Inc.
Uche Ogbuji 是
的一名顾问,也是该公司的创始人之一,这个公司是一个软件供应商,专门从事企业知识管理应用程序的 XML 解决方案方面的咨询工作。Fourthought 开发了 XML 中间件的开放源代码平台
。Mr. Ogbuji 是一位出生于尼日利亚的计算机工程师和作家,在美国科罗拉多州的博耳德(Boulder)工作、居住。您可以通过
与 Mr. Ogbuji 联系。
2002 年 2 月,全世界的许多开发者齐聚一堂,对他们特别喜爱的主题:Python,进行了为期四天的讨论。第十届国际 Python 大会分成三部分:教程、大会专题和开发者节。既然本专栏已经提供了一份讲述 Web 服务的教程,那我就着重谈谈 Web 服务及协议专题会议上发生的事情。Web 服务及协议专题会议讨论的重点是 Web 服务领域的前沿开发工具。尽管给出了这些主题,但在关于以下问题的演示期间和间隔期间,还有许多一般性讨论:
何谓 Web 服务?人们如何使用它?Web 服务有没有前途?毫无疑问,作为一次 Python 大会,这些讨论都带有一点
Python的味道。对于 Python 中的 Web 服务工具的现状,以及一直以来人们如何使用这些工具来解决实际问题方面的示例,人们都很感兴趣。
谈谈 Web 服务
在 Web 服务及协议专题会议上,首先是 Paul Prescod 的两个演讲,对 Web 服务作了一番介绍。Paul 在他的讨论中定义了许多首字母缩写词,在基于 Web 服务的讨论中,到处都有这些缩写词的身影,Paul 还对这些不同技术作了精彩的总体介绍。在他的演讲中,Paul 还一一讲述了其中许多技术:SOAP、WSDL、UDDI、HTTP 和 XAML 等等,他还给出了一些在 Python 中使用其中一些技术的示例代码。贯穿这场专题会议的随后的演讲都是对 Web 服务领域的介绍。Matthew Allum 详细而精彩地讲解了 Jabber 通信协议,还谈了谈开放源代码的 jabberpy 工程。对于不太熟悉 Jabber 协议的人,可以这个协议在原始 TCP/IP 上传递 XML 消息。该协议最初是为即时消息传递而设计的,但为了使它成为更健壮的消息传递协议,人们已经对它进行了扩展,使它有了诸如“存在(presence)”之类的概念,这个概念有点类似于 UDDI 中的目录条目。对于您们中对 SOAP 的现状不满意的人,Jabber 是一个值得关注的很不错的协议,因为它是 XML 消息很好的替代传输协议。作为一种更成熟的技术,Jabber 可能促成更稳定的实现的出现并使实现之间具有更好的互操作性。有一种技术,它并不总是与 Web 服务联系在一起,但用在分布式应用程序方面迄今已有 10 年以上,这种技术就是 CORBA(Common Object Request Broker Architecture,公共对象请求代理体系结构)。Duncan Grisby 对 CORBA 和开放源代码的 ORB ― omniORB ― 进行了简要介绍。随着 Web 服务开始飞速发展,围绕 CORBA 冒出了许多谬论,于是 Duncan Grisby 就把他的演示的许多时间,也即该会议余下的时间,用在了为 CORBA 辩护上。他展示了一些示例,用来证明 CORBA 不是“太复杂”,不是“太臃肿”,也“不是与 SOAP 一样”,等等。在整个会议期间,他都在辩称 Web 服务实际上完全是多此一举。诸如 CORBA 之类的技术用在分布式应用程序方面已有很长时间,也得到了很多深刻的教训,而这些教训 SOAP 将不得不重学一遍。Mike Olson 和 Uche Ogbuji(本专栏的作者)作了一篇介绍 RDF 及如何在 Web 服务中使用 RDF 的演讲。我们使用 4RDF(4suite 的一个组件)来给出示例,说明如何使用 RDF,并谈了谈使用 RDF 来创建基于 Web 的解决方案的实际用例。我们简要谈了谈如何把 RDF 用作诸如 WSDL 之类技术的替代技术。至于 WSDL,它将成为用来定义 Web 服务的 RDFS。我们还演示了许多本专栏一直在讨论的内容,根据最新的 4Suite 发行版(0.12)作了更新。在关于 Web 服务是什么的讨论会中,人们最感兴趣的是由 Paul Prescod 主持的专家座谈讨论会。专家组成员有 Uche Ogbuji、Mike Olson、Duncan Grisby 和 Keith Jackson。听众向专家们提了许多问题,问他们认为 Web 服务将向何处发展,Web 服务的前景如何,专家组成员对 Web 上分布式应用程序的实际实现有什么看法。在座谈会进行到约一半的时候,Tim Berners-Lee 来了,临时成了专家组的第五位成员。此时,讨论会开始讨论如何学习 RDF 以及 RDF 在 Web 服务的未来中如何发挥作用。许多开发者谈了他们一直在做的 Web 服务领域的工程。Andrew Kuchling 谈了在他的 MEMS Exchange 工程中,他们是如何使用基于 Web 的服务来使结构的测试变得简便的。接着,他谈了谈他的 Web 开发环境 Quixote。Quixote 建立在 Python 模板语言(Python Template Language)的基础上,该语言扩展了 python 解释器以使它更适合于基于 Web 的开发。顺便说一下,在主题演讲结束之际,Andrew 因他为 Python 作出的贡献被授予了 Frank Willision 奖。Mike Olson 和 Uche Ogbuji 就如何使用 4Suite XML 资源库作为构建基于 Web 服务的应用程序的基础进行了介绍。他们谈了怎样可以创建动态数据驱动的应用程序,以及怎样可以通过包括 HTTP、SOAP、XML-RPC、DCOM、FTP 和 CORBA 在内的各种协议连接到这些应用程序。Tim Berners-Lee 主题演讲
Tim 主题演讲的内容是
Web 化的 Python。在演讲中,他就如何使 Python 成为用于 Web 的更好的编程语言提出了一些想法。在演讲的开头,他谈了他如何喜欢目前这个样子的 Python 语言,以及他如何喜欢那数量极多的用于创建可在 Web 上使用的应用程序的第三方库。他提出的几个想法与本专栏密切相关。他提出的第一个想法是对图(graph)的本机支持。他建议创建一种本机图(native graph)数据类型,这种数据类型看起来有点像字典,但是考虑到了用三元组的存储来表示图。他建议采用类似这样的语法:
x = {sky color blue, madeof air. sea color grey. gray sameAs grey}在上述代码中,有五条弧(arc):sky color blue、sky color gray、sky madeof air、sea color grey 和 gray sameAs grey。接着,我们可以对这个图进行简单的查询。与上面所示类似的对图的本机支持是存储关于 Web 服务结点的可扩展和有效数据的理想方式。毕竟,“有语义的 Web”是一组非常巨大的图,使用它的应用程序需要有效地表示、查询和遍历这些图。他提出的第二个想法是关于使程序自身成为对 Web 更加友好的。Python 程序中的所有标识符都应是 URI,这项要求根据的正是这一想法。以模块为例,要用完整的 URI 对它们进行引用:import http://www.w3.org/2000/10/swap/llyn
http://www.w3.org/2000/10/swap/llyn.doSomething()从上面的代码中,我们很容易就可以得到其模块版本如下
import http://www.python.org//string和
import http://www.python.org//string它们将是两个不同的被导入模块,使开发者能够创建他们的代码和(在这个例子中是)标准字符串模块的特定版本之间的更健壮的链接。从模块被作为 URI 进行引用的想法,Tim 过渡到了其它一些想法,例如模块级变量,这些变量接着可以作为 URL 片段被访问。
print http://www.python.org//string#hexdigits类似这样的变化可以通过许多种方式把 Web 服务中的一些更有用的方面直接构建到 Python 中。在本专栏的下一部分中,我们将回到我们的编码示例中。我们将不再讨论用 SOAPy 和 ZSI 写的客户机和服务器代码,而是要看看要使 Python SOAP 实现之间具有互操作性需要做些什么。
参考资料 您可以参阅本文在 developerWorks 全球站点上的
的更多信息。
是一个开放源代码的 ORB 工程。
是一个用于 XML 和 Web 服务的优秀工具。
Web 应用开发环境。
developerWorks: 登录
标有星(*)号的字段是必填字段。
保持登录。
单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件。
在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。
所有提交的信息确保安全。
选择您的昵称
当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。昵称长度在 3 至 31 个字符之间。
您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。
标有星(*)号的字段是必填字段。
(昵称长度在 3 至 31 个字符之间)
单击提交则表示您同意developerWorks 的条款和条件。 .
所有提交的信息确保安全。
IBM PureSystems(TM) 系列解决方案是一个专家集成系统
通过学习路线图系统掌握软件开发技能
软件下载、试用版及云计算
static.content.url=/developerworks/js/artrating/SITE_ID=10Zone=SOA and web servicesArticleID=21356ArticleTitle=Python Web 服务开发者
第 7 部分: 第十届国际 Python 大会publish-date=您现在的位置: &
实现Django的控制层和表现层
实现Django的控制层和表现层
  Django中的View部分,就是如何用代码来与models中定义的字段进行交互。与传统MVC分层定义略有不同的是,在Django中,View的功能是对页面请求进行响应和逻辑控制,而页面内容的表示则由Django的Template模板来完成。我们可以把Django的View理解为实现各种功能的Python函数,View负责接受URL配置文件urls.py中定义的URL转发并响应处理,当Django收到请求之后调用相应的View函数来完成功能,article模块中的views.py文件代码定义如下:
  views.py代码定义    from&django.shortcuts&import&render_to_response& &  from&news.article.models&import&List& &  &  def&news_report(request):& &  &article_listing&=&[]& &  &for&article_list&in&List.objects.all():& &  &&&article_dict&=&{}& &  &&&article_dict[&news_object&]&=&article_list& &  &&&article_dict[&item_count&]&=&article_list.item_set.count()& &  &&&article_dict[&items_title&]&=&article_list.title &  &&&article_dict[&items_complete&]&=&article_list.item_set.filter(completed=True).count()& &  &&&article_dict[&percent_complete&]&= &  &&&&&&&&int(float(article_dict[&items_complete&])&/&article_dict[&item_count&]&*&100)& &  &&&article_listing.append(article_dict)& &  &return&render_to_response(&news_report.html&,&{&&article_listing&:&article_listing&})& &
  这是一段简洁的Python代码,让我们看看在这段代码里面Django的函数做了哪些工作吧:
  List.objects.all方法返回news列表中所有的记录项,Django可以根据后台数据库转换成相应的SQL语句,在后台数据库中执行并返回查询结果。
  每一条article文章都有item_set属性,代表news新闻条目中的每一个item项。如果需要设置查询条件,也可以使用item_set.filter方法来返回符合特定要求的item项。
  render_to_response函数返回浏览器指定的HTML页面,页面为Django的Template模板,负责展示被请求的页面内容。
  在view部分的代码中,已经指定了页面显示模板为news_report.html。其实,在Django工程中创建模板是一件非常方便的事情,下面要在article目录内创建这个模板页面,首先新建一个名为templates的文件夹,然后在这个模板目录里创建所需的news_report.html模板文件,模板的代码如下:
  news_report模板代码    && &  &&& &  &&&&&http-equiv="Content-Type"&content="text/html"&& &  &&&&新闻统计列表&/title& &  &&/head& &  &&& &  &&&&新闻统计列表&/h1& &  {%&for&list_dict&in&article_listing&%}& &  &&&&& &  &&&&&&新闻的分类:&{{&list_dict.items_title&}}&/li& &  &&&&&&新闻的数目:&{{&list_dict.item_count&}}&/li& &  &&&&&&已发布的新闻数目:& &  &&&&&&&&&&&{{&list_dict.items_complete&}}&({{&list_dict.percent_complete&}}%)&/li& &  &&&&/ul& &  {%&endfor&%}& &  &&/body& &  &/html& &
  一般来说,Django的模板代码和普通的HTML代码看上去没有太大差别,只是添加了Django特定的模板标记,这些标记允许开发者为Django模板添加页面逻辑,比方说将views.py中render_to_response函数返回的数据库结果集显示在页面中,Django特有的标签在模板页里以“{%”作为开始并以“%}”作为结束。嵌入Django模板的变量则以“{{”作为开始并以“}}”结束。
  在上面的模板代码里面,用到了标记{% for news_dict in article_listing %}以及{% endfor %}。这样的标记告诉Django模板处理机制循环取出news中的item项输出在页面中,在for循环内部,通过article_listing的属性得到View中对应的数据项字段的值并显示每个news项的Title标题以及news中的item项数目。
  当Django的View和Template都已经准备妥当,下面仅需要几步配置来告诉Django存储工程应用的模板位置,这需要对配置文件setting.py中的TEMPLATE_DIRS项进行设置。在本例中加入模板文件"news_report.html"的存储路径就可以让Django把对View进行处理的结果集通过指定模板返回。按照本例应用的结构,TEMPLATE_DIRS参数的内容设置为:
  &./article/templates&,&
  这里不要忘记Django需要在路径的最末尾添加一个逗号。接下来仅需要设置访问article时的URL转向地址就可以。打开urls.py文件,在admin后台管理的转向地址下一行添加如下语句:
  (r&^report/$&, &news.article.views.news_report&),
  在这里语段的最末尾,也需要有逗号标记段落的结束。在这里可以看到,Django的URL转发设计的非常简洁,在配置文件urls.py中对应于view的转发请求都由两部分组成,第一部分遵循正则表达式指定相匹配的URL地址,第二部分是对应在View里面处理转发请求的函数。
  完成了这些步骤,就可以在命令提示符下再次启动Django服务器,看一下上述努力的成果了,在浏览器中打开链接,将会看到新闻列表的返回界面。页面中显示了数据库中已添加所有新闻的分类统计信息。值得一提的是,Django模板支持多层嵌套,并且每一层都可以使用DIV+CSS方式完成布局,可以方便的让站点页面遵循统一风格,看起来美观大方。
  在上述整个过程中,对使用Django进行Web开发进行了初步的介绍。在应用中写的Python代码不过几十行,比较起来其他的开发语言,Django显得非常便捷实用,最后再来回顾一下Django都帮助我们做了哪些工作吧:
  通过Django的对象关系映射模型建立了存储新闻分类以及新闻项的两张数据表,并用syncdb命令同步更新到数据库。
  借助Django的管理功能在应用中生成了一个漂亮实用的后台管理界面。
  利用Django函数和标签编写了view功能模块以及显示数据结果的Template模板。
【编辑推荐】
    Django模块的部署
  解决Eclipse无法调试J2ME程序的配置方法
  SVN服务器端与Eclipse中的客户端配置详解
  Eclipse平台扩展点清单
  使用Eclipse开发PHP项目
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-}

我要回帖

更多关于 python界面开发 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信