第十一章-Zope上的Python脚本编程

合集下载

Python程序开发教程

Python程序开发教程
总结词
Pandas库(用于数据处理)
Matplotlib是Python中用于数据可视化的基础库,提供了多种绘图函数和工具。
Matplotlib库提供了多种绘图函数和工具,支持绘制散点图、线图、柱状图、饼图等多种图形。它还支持定制图形的样式和布局,方便开发者进行数据可视化。此外,Matplotlib还支持与其他绘图库的集成,如Seaborn、Plotly等。
对象和类
面向对象编程中的两个重要概念。继承允许子类继承父类的属性和方法,实现代码复用。多态则允许不同的对象以统一的方式交互。
继承和多态
try/except语句
用于捕获和处理异常的语句块,try块中的代码可能会引发异常,而except块则处理这些异常。
自定义异常
Python允许自定义异常类型,通过继承内置的Exception类或其子类来创建。
文件I/O操作
数据库连接
使用Python的数据库连接库(如sqlite3、MySQLdb等)连接到数据库。
执行查询
使用SQL语句执行查询操作,并获取结果集。
插入数据
使用SQL语句插入数据到数据库表中。
更新和删除数据
使用SQL语句更新或删除数据库表中的数据。
数据库交互
03
CHAPTER
Python常用库与框架
详细描述
VS
Pandas是Python中用于数据处理和分析的库,提供了数据结构和函数,方便对数据进行清洗、处理和可视化。
详细描述
Pandas库提供了DataFrame和Series两种数据结构,可以方便地读取数据、筛选数据、转换数据格式等操作。它还提供了丰富的数据处理函数,如分组聚合、时间序列处理等。此外,Pandas还支持与其他数据源的交互,如SQL、Excel等。

01_Python编程从入门到实践_目录简介

01_Python编程从入门到实践_目录简介

01_Python编程从⾏门到实践_⾏录简介⾏,Python编程从⾏门到实践⾏录:1)起步:介绍在计算机中安装Python,并运⾏第⾏个程序——它在屏幕上打印消息“Hello world!”。

2)变量和简单数据类型:论述如何在变量中存储信息以及如何使⾏⾏本和数字。

3)列表简介:使⾏列表能够在⾏个变量中存储任意数量的信息,从⾏⾏效地处理数据:只需⾏⾏代码,你就能够处理数百、数千乃⾏数百万个值。

4)操作列表:使⾏列表能够在⾏个变量中存储任意数量的信息,从⾏⾏效地处理数据:只需⾏⾏代码,你就能够处理数百、数千乃⾏数百万个值。

5)if 语句:讲解使⾏if语句来编写这样的代码:在特定条件满⾏时采取⾏种措施,⾏在该条件不满⾏时采取另⾏种措施。

6)字典:演⾏如何使⾏Python字典,将不同的信息关联起来。

与列表⾏样,你也可以根据需要在字典中存储任意数量的信息7)⾏户输⾏和while循环:讲解如何从⾏户那⾏获取输⾏,以让程序变成交互式的。

你还将学习while 循环,它不断地运⾏代码块,直到指定的条件不再满⾏为⾏。

8)函数:介绍编写函数。

函数是执⾏特定任务的被命名的代码块,你可以根据需要随时运⾏它。

9)类:介绍类,它让你能够模拟实物,如⾏狗、⾏猫、⾏、汽车、⾏箭等,让你的代码能够表⾏任何真实或抽象的东西。

10)⾏件和异常:介绍如何使⾏⾏件,以及如何处理错误以免程序意外地崩溃。

你需要在程序关闭前保存数据,并在程序再次运⾏时读取它们。

你将学习Python异常,它们让你能够未⾏绸缪,从⾏让程序妥善地处理错误。

11)测试代码:为代码编写测试,以核实程序是否像你期望的那样⾏作。

这样,扩展程序时,你就不⾏担⾏引⾏新的bug。

要想脱离初级程序员的阵容,跻⾏于中级程序员的⾏列,测试代码是你必须掌握的基本技能之⾏。

项⾏开始:1)外星⾏⾏侵2)数据可视化3)Web应⾏程序附录:1)安装2)⾏本编辑器3)寻求帮助4)使⾏Git进⾏版本控制1991年,第⾏个Python编译器诞⾏Python语⾏⾏常完善,没有明显的短板和缺点,唯⾏的缺点就是执⾏效率慢,这个是解释型语⾏所通有的,同时这个缺点也将被计算机越来越强⾏的性能所弥补。

基于开源的Web开发架构——ZOPE/Python

基于开源的Web开发架构——ZOPE/Python
11Z E的架 构 . OP
D TML文档 也 能 包含 其 他 DT ML文 档 。 一 个 常 用的 设 计 就 是 在 页 面 中对 页眉 和 页脚 的 包含 :
< I # at t n r _ v sa dad -

hmLh a e-> t edr 一
< H > 欢 迎 来 到 vc A 2  ̄c CMEc m! H2 w. .o </ >
维普资讯
计算机 时代 2 0 年 第 7 08 期
・ 9・
基于开源的 We b开发架构
郭力子
Z EP to OP /yh n
( 苏信 息 学院 ,江 苏 无锡 242) 江 103
摘 要 : 简要 介 绍 了 开放 源码 We b服 务 器 Z P O E和 P t n语 言 的 主 要 特 点 。说 明 了采 用 Z P yh o O E和 P h n实施 We t yo b开 发 的优 势 :OP Z E是 完全 面 向对 象的 We 务 器 , 内嵌 对 象数 据 库 、 特 的 “ 取 ” 能和 安 全 策略 可 以 用来 更 快 速 地 构 b服 其 独 获 功 建 We b应 用程 序 。 而 P h n是 完全 面 向对 象的 编 程 语 言 ,其跨 平 台的特 点 和 优 良的 性 能 成 为 编 写 Z P t y o O E的 首 选 开 发 工
具 。作为一个优 良的 We b开发 平台, O EP to Z P /vh n必将进一 步获得人们的青睐。
关 键 词 :We b开发 :Z E;P to ;Z DB OP y n O h
O 引 言
因特网的发展使得 We b大行其道 ,当今几乎所有 的企业
信 息 化 软 件 以及 部 分 个 人 桌 面 都 采 用 了 We 面 。W e 面 b界 b界

python知识点总结讲义

python知识点总结讲义

python知识点总结讲义一、Python 的基础语法Python 的基础语法非常简单,但是功能强大,适合初学者入门。

Python 的语法特点包括:1. 代码块使用缩进来表示,而不是使用大括号。

这使得 Python 的代码更加简洁和易读。

2. 变量不需要提前声明,可以直接赋值使用。

3. Python 支持多种数据类型,包括整数、浮点数、字符串、列表、元组、字典等。

4. Python 支持条件语句(if-else)、循环语句(for、while)、函数定义等常见的控制结构。

5. Python 的函数和模块化设计非常灵活,支持函数的嵌套和递归调用。

二、Python 的核心特性Python 作为一种高级编程语言,具有许多独特的核心特性,使其在软件开发中具有独特的优势。

其中包括以下几点:1. 简单易学:Python 的语法非常简单易懂,适合初学者入门。

对于有其他编程语言基础的人,也很容易上手。

2. 面向对象:Python 是一种面向对象的编程语言,支持类、对象、继承、多态等面向对象的特性。

3. 动态类型:Python 的变量是动态类型的,不需要提前声明变量的类型,可以根据赋值自动推断变量的类型。

4. 强大的标准库:Python 的标准库非常强大,包含了大量的模块和函数,能够满足各种开发需求。

5. 可移植性强:Python 可以在各种操作系统上运行,在 Linux、Windows、Mac 等平台都可以运行。

三、Python 的数据类型和数据结构Python 支持多种数据类型和数据结构,包括整数、浮点数、字符串、列表、元组、字典等。

其中,列表和字典是 Python 中非常重要的数据结构,具有很强的灵活性和适应性。

1. 整数和浮点数:Python 支持整数和浮点数,可以进行整数和浮点数的加减乘除等操作。

2. 字符串:Python 的字符串可以使用单引号、双引号或三引号来表示,支持字符串的切片、拼接、查找、替换等操作。

Python编程入门教程

Python编程入门教程

Python编程入门教程一、介绍Python编程语言1.1 Python的起源和发展背景1.2 Python的特点和优势1.3 Python在不同领域的应用二、安装Python解释器2.1 下载Python解释器2.2 安装Python解释器2.3 验证安装是否成功三、Python基础知识3.1 变量与数据类型3.1.1 数字类型3.1.2 字符串类型3.1.3 列表类型3.1.4 元组类型3.1.5 字典类型3.2 条件语句与循环语句3.2.1 if语句3.2.2 for循环3.2.3 while循环3.3 函数和模块3.3.1 函数的定义和调用3.3.2 模块的导入和使用3.4 异常处理3.4.1 try-except语句3.4.2 异常类型和处理方式四、Python进阶知识4.1 面向对象编程4.1.1 类和对象的概念4.1.2 类的定义和使用4.1.3 继承和多态4.2 文件操作4.2.1 打开和关闭文件4.2.2 读取和写入文件4.2.3 文件指针和文件操作位置4.3 正则表达式4.3.1 正则表达式的概念和作用4.3.2 正则表达式的基本语法4.3.3 正则表达式常用函数和方法五、常用Python库和框架5.1 NumPy5.1.1 NumPy的作用和特点5.1.2 NumPy的常用函数和操作5.2 Pandas5.2.1 Pandas的作用和特点5.2.2 Pandas的数据结构和操作5.3 Matplotlib5.3.1 Matplotlib的作用和特点5.3.2 Matplotlib的常用绘图函数和方法5.4 Django5.4.1 Django的概述和特点5.4.2 Django的基本使用和开发流程六、实例项目:创建一个简单的网站6.1 设计网站结构和功能6.2 创建网站所需的文件和目录6.3 使用Django框架实现网站功能6.4 运行和测试网站七、学习资源推荐7.1 书籍推荐7.2 在线教程和视频教程7.3 编程社区和论坛总结:Python编程入门教程提供了Python语言的基础知识和进阶知识的学习指导,包括了Python基础知识、Python进阶知识、常用Python库和框架以及一个实例项目。

python 基础教程

python 基础教程

python 基础教程Python基础教程Python是一种高级编程语言,适用于各种开发需求。

本教程旨在帮助初学者快速入门Python,并理解其基本概念和语法。

1. Python简介Python是一种高级、解释型、面向对象的编程语言。

它具有简单易学、可读性强和丰富的第三方库等特点,广泛应用于Web开发、数据分析、人工智能等领域。

2. Python安装首先,你需要下载Python的安装包并按照提示进行安装。

Python有许多不同的版本,选择适合自己的版本并下载安装。

3. 第一个程序在Python中,可以使用print()函数输出一个字符串:```pythonprint("Hello, Python!")```运行以上代码,将会在控制台输出"Hello, Python!"。

4. 变量和数据类型Python中的变量不需要指定类型,可以直接赋值。

常见的数据类型包括整数、浮点数、字符串和布尔值。

5. 运算符Python支持各种运算符,比如数学运算符(+、-、*、/等)和比较运算符(>、<、==等)。

6. 条件语句通过if-else语句可以根据条件执行不同的代码块。

例如:```pythona = 10if a > 0:print("a是正数")else:print("a是负数或零")```7. 循环语句Python提供了多种循环语句,包括for循环和while循环。

可以通过循环来重复执行一段代码。

8. 函数Python中的函数通过def关键字定义,可以有效地组织和重用代码。

示例:```pythondef add(a, b):return a + bresult = add(3, 5)print(result) # 输出8```9. 列表和元组列表和元组是Python中常用的数据结构。

列表是可变的,而元组是不可变的。

python的主要内容Python主要知识内容概述

python的主要内容Python主要知识内容概述Python主要知识内容概述Python是一种高级、开源的编程语言,具有简单易学、语法优雅、功能强大等特点,被广泛应用于科学计算、数据分析、人工智能、网络编程等领域。

本文将概述Python的主要知识内容,包括基本语法、数据类型、控制流、函数、模块化编程、文件操作、异常处理、面向对象编程等。

一、基本语法Python使用缩进来表示代码块,不需要使用花括号或者其他分隔符。

常见的基本语法包括变量的定义、赋值和打印输出等,这些基础知识是编写Python程序的基础。

二、数据类型Python提供了多种常用的数据类型,包括整数、浮点数、字符串、列表、元组、字典等。

这些数据类型具有不同的特点和用途,在不同的场景中选择合适的数据类型可以提高程序的效率和可读性。

三、控制流控制流用于控制程序的执行流程,主要包括条件判断和循环结构。

Python提供了if语句、while循环和for循环等控制流语句,通过合理地运用这些语句可以实现复杂的逻辑判断和循环操作。

四、函数函数是将一段代码进行封装,以便复用的工具。

Python支持函数的定义和调用,可以编写自己的函数来完成特定的任务。

函数也可以接收参数和返回值,方便数据的传递和处理。

五、模块化编程模块化编程是将程序分割成多个独立的模块,每个模块负责完成特定的功能。

Python通过模块来组织代码,使得代码易于维护和扩展。

常用的模块包括标准库模块和第三方模块,可以通过import语句导入并使用。

六、文件操作文件操作是处理文件的常见操作,包括文件的读取、写入和关闭等。

Python提供了丰富的文件操作函数和方法,可以方便地读取和写入不同格式的文件。

七、异常处理异常处理用于捕获和处理程序的异常情况,例如文件不存在、数据格式错误等。

Python提供了try-except语句来处理异常,可以捕获异常并进行相应的处理,以保证程序的稳定性和可靠性。

八、面向对象编程面向对象编程是一种常用的程序设计范式,Python支持面向对象的编程方式。

第十二章-Zope页面模版

Zope页面模版在当前的 Zope/Plone 应用中,几乎所有的 Web 页面都是使用 Zope页面模板(Page Template) 来生成的。

Zope页面模版负责内容的展现形式。

这一章我们详细介绍页面模板的用途和用法。

本章适合脚本开发人员和扩展开发人员阅读,读者要求掌握ZMI的基本使用方法,以及HTML语言。

本章学习重点:∙了解页面模板的适用领域∙理解TALES表达式的原理∙掌握页面模板的用法∙掌握模板宏和国际化的原理12.1 什么是Zope页面模板页面模板是一种类似于 asp/jsp/php 页面的技术,即包含有程序逻辑的页面结构。

它基于xhtml, 是xhtml的一个扩展。

由于它同时也是一种 xml ,因此需要生成 xml 数据显示的部分也可以使用页面模板。

页面模板是产生Web页面的工具,但Zope中使用这种技术有更多的好处是它能帮助程序员和设计师进行协同工作,在页面模板技术诞生以前也有一种称为 DTML 的显示动态页面的技术,但 DTML 的设计是没有考虑到有协同工作的需要,它只是一种程序员才能使用的工具,因此现在已经被页面模板技术所淘汰了。

至今 DTML 技术在Zope中还存在只是为了生成一些非 html/xml 的页面。

一般地,在设计页面模板的过程中程序员与网页设计师的协同工作步骤是:∙设计师使用所见即所得的编辑器制作一个模板;∙程序员修改其中需要动态显示的地方;∙设计师可以再次修改程序员修改的结果、程序员也可以再次修改设计师修改的结果,如此迭代式开发以达到最优。

在这个过程中,他们使用不同的工具修改页面模板的内容不会互相影响。

这种协同的原理是以xhtml标准为基础的。

因为Zope页面模板是作为一种xhtml扩展来实现的,程序员写的所有代码都在xhtml标记的属性中,设计师只需要选择一种xhtml 兼容的所见即所得编辑器,其再次工作不会破坏程序员在其中添加的代码。

当前大多数所见即所得编辑器如 DreamWeaver 都支持 xhtml 的规范。

python基础教程pdf

python基础教程pdfPython基础教程PDF概述Python是一种高级编程语言,具有简单易学、可读性强的特点,适用于各种编程任务。

本文档旨在为初学者和那些希望巩固基础知识的人提供一个全面的Python基础教程。

本教程将从Python的历史背景开始,逐步引导读者了解Python的基本语法、数据类型、控制流程、函数和模块等方面的知识。

最后,读者还将了解到如何使用Python进行文件处理和异常处理。

第一章:Python概述1.1 Python的历史1.2 Python的优势和应用领域第二章:Python的安装和环境配置2.1 Windows平台下的Python安装2.2 MacOS平台下的Python安装2.3 Linux平台下的Python安装2.4 PyCharm的安装和配置第三章:Python的基本语法3.1 注释和代码格式化3.2 变量和数据类型3.3 运算符和表达式3.4 输入和输出第四章:Python的控制流程4.1 条件语句4.2 循环语句4.3 跳出循环和循环控制第五章:Python的数据类型5.1 数字类型5.2 字符串类型5.3 列表类型5.4 元组类型5.5 字典类型5.6 集合类型第六章:Python的函数和模块6.1 函数的定义和调用6.2 函数的参数传递6.3 匿名函数和递归函数6.4 模块的导入和使用第七章:Python的文件处理7.1 打开、读取和写入文件7.2 文件的定位和操作7.3 文件的关闭和异常处理第八章:Python的异常处理8.1 异常的基本概念8.2 异常的处理方法8.3 异常的常见类型第九章:常用的Python库和工具9.1 Numpy库的使用9.2 Pandas库的使用9.3 Matplotlib库的使用9.4 Scikit-learn库的使用9.5 Pytest的使用总结本文档提供了一个全面而系统的Python基础教程,适合没有编程经验或者希望加强基本知识的读者学习。

python使用手册

Python使用手册一、Python简介Python是一种高级、解释型、面向对象的编程语言。

它具有简单易学、可读性强、开发效率高等特点,被广泛应用于数据分析、人工智能、Web开发等领域。

本文将介绍Python的基础语法、常用库以及一些开发技巧,帮助初学者快速入门Python编程。

二、Python基础语法1. 变量与数据类型在Python中,变量用于存储数据,并且不需要提前声明变量的类型。

Python支持多种数据类型,包括整数、浮点数、字符串、布尔值等。

可以使用赋值运算符将数据赋给变量,例如:x = 10y = 3.14name = 'Alice'is_valid = True2. 列表和元组列表和元组是Python中常用的数据结构。

列表用于存储一组有序的元素,可以通过索引访问或修改列表中的元素。

元组类似于列表,但是一旦创建就不能修改。

例如:fruits = ['apple', 'banana', 'orange']print(fruits[0]) # 输出'apple'coordinates = (3, 4)x, y = coordinatesprint(x, y) # 输出3 43. 条件语句和循环结构条件语句和循环结构是控制程序流程的关键。

Python使用缩进来表示代码块,不需要使用大括号。

条件语句用于根据条件判断执行不同的代码块,例如:x = 10if x > 0:print('x is positive')elif x < 0:print('x is negative')else:print('x is zero')循环结构用于重复执行一段代码,有for循环和while循环两种形式,例如:for i in range(5):print(i)while x > 0:print(x)x -= 1三、常用Python库Python拥有丰富的第三方库,为开发者提供了许多便捷的功能和工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Zope上的Python脚本编程从本章开始,将进入Zope/Plone的开发。

在Zope上面的开发有两个层次:一是通过浏览器直接在Zope管理界面上写脚本、模板等,这也称为TTW(ThoughTheWeb)方式;另一个是在文件系统上写扩展产品,也称为扩展开发。

这一章专门讲述TTW开发方式中的脚本。

本章适合脚本开发人员阅读。

Zope 是一个应用程序服务器,其编写源代码是 Python ,一种动态强类型解释执行语言。

在 Zope 中可以通过浏览器,在ZMI中添加 Script (Python) 对象来撰写 Python 代码。

在一般的Zope开发中也可直接称为Python脚本,但本章为了区别可能存在的歧义使用Script(Python)这个标准术语。

Script(Python)通常用在逻辑处理的工作上,这是和下一章将会介绍的用来作呈现工作的页面模板作为对比。

将逻辑和呈现的部份分开来,可以提高代码的清晰性和可维护性。

本章学习重点是:∙掌握脚本的运用,并能理解为了安全性给脚本引入的限制∙理解外部方法的作用,并掌握其使用方法11.1 在Zope管理界面中使用Script (Python)在TTW方式开发中,所有写代码的过程都是直接在浏览器中通过相关对象完成。

因此这一节首先介绍在Zope管理界面中操作Script (Python)对象。

11.1.1 创建Script (Python)对象在Zope管理界面中,添加项下拉列表中选取 Script (Python) 添加Script (Python)对象,如图11.1所示。

【图 11.1】从下拉列表中选择Script (Python)这时出现添加表单,如图11.2所示.【图 11.2】在Zope管理界面中添加Script (Python)只需要输入id,然后点击 Add 或者 Add and Edit ,两个按钮的区别是后者在添加了Script (Python)就开始编辑它。

如果已有写好的文件可以在File输入中直接上传。

点击"Add and Edit"后就开始对新增加的Script (Python)进行编辑, Zope会生成一段默认的代码,不必理会它,可以直接删除后改写成下面这一行语句:return "Hello, World!"写好之后,需要点击 Save Changes 按钮保存一次,然后就可以选择Test标签页进行测试运行,可以看到运行结果正是那个经典的"Hello, World"程序输出:Hello, World!可以看到,这种方式与一般的Python程序开发也很类似,只不是由浏览器上的编辑框代替了本地的编辑器。

如果你不喜欢这个编辑器(它的功能确实很简陋),你还可以在本地编辑好然后作为文件上传上去。

11.1.2 Script (Python)的参数的传入在编辑Script (Python)对象的界面中可以看到有Parameter List一行,这是用于在调用Script (Python)时向其传入参数。

【图 11.3】对Script(Python)传入参数这时再选择Test标签页会要求输入这些参数值。

Script (Python)的参数也可以写默认值,就像一般的Python脚本一样,在定义了默认参数的情况下测试运行时,不要求必须输入参数值。

图11.3的例子中正是给name参数设置了"World"的默认值。

它的测试运行界面如图11.4,需要在表单填入测试运行值,这里如果不填就测试运行它就会使用默认值。

【图 11.4】运行有参数的 Script (Python)如果既没有默认值,也没有在测试运行表单中填入参数,则会报告异常。

需要注意的是在写参数列表时应该将有默认值的参数放在后面,这也是与一般Python 函数共同的特点。

11.1.3 直接使用Script (Python)如有 Script (Python) 位于/hello,那么可以使用这个URL来调用:在有参数的Script (Python)上还可以进行表单变量的自动转换,如上面例子中第二个hello有一个参数是name,于是可以这个URL来调用,Zope会自动将URL中的参数转换为Script (Python)所需要的同名参数:这相当于在使用HTTP GET方式的提交表单。

事实上Script (Python)也可以作为form 的action的被调用, method可以是任何一种,如这一段代码将表单以POST方式调用:<form action="hello" method="post"><input name="name" /><input type="submit" />...当表单被提交时,运行结果与直接在URL上写的方式是一样的。

应用Zope对象发布原理一章中表单变量的自动转换(Marshall)的知识,你还可以给每个input域加上各种类型后缀, Script (Python) 就可以接收到各种有类型的数据。

11.1.4 被其他的 Zope 对象调用Script (Python) 大部分用于逻辑的判断和数据处理,数学运算等,这些都可以写到单独的脚本中,在 Zope 的其它地方就可以进行调用,取得其运算结果。

可以在另外一个Script (Python)脚本中调用上面的hello脚本如下:上面的context是调用的上下文。

如果需要传入参数,可类似一般的Python方法调用方法,如下书写:或者使用关键字参数形式调用:在其它可处理运算的 Zope 对象中同样可以调用 Script (Python) ,比如后面要介绍的 Zope 页面模板、DTML等。

11.2 Script (Python)绑定变量Zope是一个强大的应用程序服务器,要充分利用Zope所提供的功能,首先要使用到的是绑定变量。

11.2.1 绑定变量清单在调用、执行脚本时有一些已存在的对象可供使用,在Zope中称之为绑定变量(Bound Names)。

相当于一般Python编程中的内置变量或函数等。

当前Zope版本中有以下这几个:∙context: 这个变量是调用Script 的对象,可以是Zope中任意的对象,如文件夹,或者文件,图片等等任意一个对象,它是会随着Script(Python)被调用的位置而发生变化∙container: 这个变量是容纳Script 的目录对象,也就是放置Script(Python)对象的那个目录,它是一成不变的∙script: 这个变量是Script 对象本身,也是不会变的∙namespace: 只有由DTML 调用时才会定义这个变量,它是DTML 调用时的namespace,只有在同时使用到DTML的地方才会使用到这个变量,一般不会用到它∙subpath: 这是一个高级变量,只有通过Web 调用Script ,而且URL 在Script 之后还有其他的对象路径时才会将这些路径切割放入一个list 中,由左向右依序放置。

其他时候这只是一个空的list 。

11.2.2 认识context变量context变量是执行脚本时的上下文,利用这个特性我们可以将 script 执行在任意获取规则能访问到的对象上。

获取规则是Zope发布原理中介绍的一个很重要的Zope的特性,这里我们可以看一些使用到获取规则的例子。

先在Zope根目录建一个 Script 命名为 get_name , Parameter list 保持空白,内容填入:保存这个代码后,然后用浏览器分别查看这些 URL,观察结果,见表11.1。

你可以看到使用不同的URL访问的是不同的对象,但它们都可以访问到在Zope 根目录上的get_name脚本。

get_name 执行在不同的对象上就会取出不同的title 或 id 来,这也称作由这些对象来调用 Script。

在这里我们用了context 这个绑定变量,context 表示调用它的对象本身。

11.2.3 认识默认的Python脚本再来看看新建的 Script (Python) 对象后的默认内容:# Example code:# Import a standard function, and get the HTML request and response objects.from Products.PythonScripts.standard import html_quoterequest = container.REQUESTRESPONSE = request.RESPONSE# Return a string identifying this script.print "This is the", script.meta_type, '"%s"' % script.getId(),if script.title:print "(%s)" % html_quote(script.title),print "in", container.absolute_url()return printed这一段代码中首先导入 html_quote 函数为下文需要,然后从 container 上读取REQUEST 和 RESPONSE,但这个脚本上实际上并未用到。

然后是打印语句,将 script 变量的 meta_type 属性读出,从其 getId 方法上读取其 id ,再读 title 属性,果有的话将 title 属性作 html 转化后打印出来,最后打印其 URL 地址。

用上 html_quote 是因为 title 属性可以含有 html 控制字符,使用 html_quote 转换为可在 html 中显示的文本。

注释在 Script (Python) 中可以打印,但打印的结果会汇入到printed变量中,所以返回printed来显示结果。

11.3 Script (Python)的安全沙箱限制因为脚本是可以通过网页界面写在Zope管理界面中,任何有相应Zope权限的人都可以写脚本,但Python编程语言本身是像所有高级语言一样具有控制Web主机的所有高级功能,因此在允许Zope用户来写自己的Python脚本时,安全就成为一个大问题。

必须对其限制所有可能危害Web主机的操作。

很多 Python 的内置函数如 open 就被禁止使用,这是防止直接由 Web 存取主机的文件系统。

相关文档
最新文档