深度剖析Python Web 應用程序
我們將通過 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是最好的選擇之一。
【編輯推薦】