我们将通过 Python Web 应用程序公开此功能。首先,您需要选择要使用的 Python Web 应用程序平台,这可能要比实际编写应用程序困难!由于它们非常易于用 Python 编写,因此有大量平台可供使用。
或者,如果您对 Ruby on Rails 很感兴趣,则可能要考虑 TurboGears 或 Django - Python 自身的从上自下的应用程序构建器。TurboGears 也支持在应用程序中方便地包含 AJAX。现在,我们将选择一个非常简单的框架 CherryPy。请在此处下载它。
首先,对 compareInitOra.py 稍加修改(如下所示),创建一个 html() 函数,从而返回包含所需文本和标记的字符串。然后,只需要编写七行多代码即可将该函数公开为 Web 应用程序。
- import readInitOra, cx_Oracledef readLiveParams(instance):
- liveParams = {}orcl = cx_Oracle.connect('scott/tiger@' + instance)curs = orcl.cursor()curs.execute('SELECT name,
- value FROM V$PARAMETER')row = curs.fetchone()while row:(param, val) = (row[0],
- row[1])liveParams[param.upper()] = valrow = curs.
- fetchone()return liveParamsfileName = 'init_orcl.ora'def html(initOraFile, instance):
- result = ""fileParams = readInitOra.read(initOraFile)liveParams = readLiveParams(instance)for (param, val)
- in fileParams.items():liveVal = liveParams.get(param)if
- liveVal == val:result += "<font color='green'>%s</font><br>\n" %
- (val)elseresult += "<font color='red'>%s (file) %s (live)</font></br>\n" %
- (val, liveVal)return resultimport cherrypyclass WebApp:def index(self,
- initOraFile='init.ora', instance='orcl'):return html(initOraFile, instance
- )index.exposed = Truecherrypy.root = WebApp()cherrypy.server.start()
运行该脚本时,它开始以Python Web 应用程序服务器的形式(默认情况下)在端口 8080 上工作。结论衷心希望 Python 的易用性、简洁行和可读行能够引起您的兴趣。您对 Python 的强大功能还不了解。
它的功能包括简洁的异常处理、单元测试、面向对象、实用编程、GUI 工具包、Web 框架、XML、Web 服务 -编程人员几乎可以执行任何操作。随着工作变得更高级,您不必“过渡”到其他语言。
这样可以方便地根据需求的变化改写脚本代码,而不是必须重新编译链接二进制的动态链接库。Python强大的功能足以胜任,但是有一些操作系统特定的功能需要用C++来实现,再由Python调用。所以,最基础地,我们需要做到:
1. 把Python嵌入到C++应用程序中,在C++程序中调用Python函数和获得变量的值;
2. 用C++为Python编写扩展模块(动态链接库),在Python程序中调用C++开发的扩展功能函数。
Python Web 应用程序具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用。它的名字来源于一个喜剧,也许最初设计Python这种语言的人并没有想到今天Python会在工业和科研上获得如此广泛的使用。
著名的自由软件作者Eric Raymond在他的文章《如何成为一名黑客》中,将Python列为黑客应当学习的四种编程语言之一,并建议人们从Python开始学习编程。
这的确是一个中肯的建议,对于那些从来没有学习过编程或者并非计算机专业的编程学习者而言,Python是最好的选择之一。
【编辑推荐】