一、ASP的平反
想到ASP 很多人會說 “asp語言很蛋疼,不能物件導向,功能單一,很多東西實現不了” 等等諸如此類。 以上說法都是錯誤的,其一ASp不是一種語言是 微軟用來代替CGI的一種web架構,只不過我們一直被扭曲在 vbs就是asp的預設語言,把ASP 和 vbs 之間划了等號。 其二 Asp 功能其實並不單一 此web 提供5個對象 (request、 response、 server、 session、 appliaction)這就是asp與生俱來的東西,除了這些東西都是Asp 所用的指令碼級的東西。 而ASP 藉助了 Asp.dll動態連結程式庫,理論上可以試用一切指令碼語言套件括(vbscript 、jsscript、 actionscript、 perl 、python),所以說ASP是非常豐富的靈活的 web架構
二、為什麼要用python寫Asp
python 最近如火如荼,非常之火,他在各大領域都佔有自己舉足輕重的地位,web方面自然也少不了他。 Echosong 已經用過django 、web.py 等等python自己的web架構。由於工作需要 Echosong 很大一部分時間是在寫ASP。 而vbs的Asp實在讓人寫得有種 想死感覺,很多功能藉助各種 c 或者其他語言寫的dll 穩定性難以考量,而echosong又是一個Python 的 十足迷、08年開始接觸python 一直是做為一種愛好沒斷過,只是一直沒用於工作。
三、開始把兩小夥伴融合在一起
1、asp 的安裝 : 隨著IIS 的安裝asp就成為了預設安裝好的web架構
2、安裝 activepython: ActivePython是由 ActiveState 公司推出的專用的 Python 編程和調試工具。
ActivePython 包含了一個完整的 Python 核心,直接調用 Python 官方的開源核心,此外還有 Python 編程需要用到的 IDE,並附加了一些 Python 的 Windows擴充,同時還提供了全部的訪問 Windows APIs 的服務。ActivePython 雖然不像純 Python 那樣是開源的,但是也可以免費下載使用。(注意版本只能下載 2.5的,一開始echosong也不行下載了2.7 的版本 結果無情的500 個中緣由也不清楚,不夠2.5的版本也夠用了)
3、命令列運行 C:\Python25\Lib\site-packages\win32comext\axscript\client\pyscript.py;
4、完成上面兩步就可以著手寫python的Asp了
四 、簡單的Demo
串連資料庫檔案 conn.asp (用pymssql串連mssql資料庫)
代碼如下:
<%import pymssql
class MSSQL:
def __init__(self,host,user,pwd,db):
self.host = host
self.user = user
self.pwd = pwd
self.db = db
def __GetConnect(self):
if not self.db:
Response.write(NameError,"No connec Info")
self.conn = pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
cur = self.conn.cursor()
if not cur:
Response.write(NameError,"connect Err")
else:
return cur
def getCur(self):
return self.__GetConnect()
def ExecQuery(self,sql):
cur = self.__GetConnect()
cur.execute(sql)
resList = cur.fetchall()
self.conn.close()
return resList
def ExecNonQuery(self,sql):
cur = self.__GetConnect()
cur.execute(sql)
self.conn.commit()
self.conn.close()
gmssql = MSSQL(host="****",user="****",pwd="***",db="***")
gcur = MSSQL.getCur()
%>
這裡 可以自由的import python的相關模組!!!
data.asp 檔案調用conn.asp的資料連線執行sql語句 迴圈顯示欄位的值到頁面
代碼如下:
<%@LANGUAGE="python" CODEPAGE="65001"%>
無標題文檔
<%
resList = gmssql.ExecQuery("select admin_Id, admin_UserId from admin")
%>
管理員編號 |
管理帳號 |
<%for (admin_Id,admin_UserId) in resList: Response.write(u"
"+str(admin_Id)+" | ") Response.write(u"
"+str(admin_UserId)+" |
|
")%>
五、用python 寫ASp的優勢
1、高度代碼複用: 可以寫自己項目的模組,把平時常用的代碼 寫成 python的模組,然後伺服器上所有的都可以藉助 import 來調取
2、試用python優秀特徵: python 強大的Python庫 很多現成的功能直接用,而不要想傳統asp(vbs指令碼的)藉助 很多 編譯行語言的的dll來實現
3、完全的物件導向: vbs是面向過程的語言,對象的特徵很弱,很多物件導向的思想不能用。
六、穩定性 和效能的考慮
做了壓力測試 同一時間處理事務的能力,各方面參數強於vbs的,特別是在串連資料庫用了些python 優秀開源的池處理模組,使得很多資料庫的瓶頸減輕。(寫博文的時候相關資料沒有在此電腦上面)