用python寫asp詳細講解
一、ASP
想到ASP 很多人會說 “asp語言不能面向對象,功能單一,很多東西實現(xiàn)不了” 等等諸如此類。 以上說法都是錯誤的,其一ASp不是一種語言是 微軟用來代替CGI的一種web框架,只不過我們一直被扭曲在 vbs就是asp的默認語言,把ASP 和 vbs 之間劃了等號。 其二 Asp 功能其實并不單一 此web 提供5個對象 (request、 response、 server、 session、 appliaction)這就是asp與生俱來的東西,除了這些東西都是Asp 所用的腳本級的東西。 而ASP 借助了 Asp.dll動態(tài)鏈接庫,理論上可以試用一切腳本語言包括(vbscript 、jsscript、 actionscript、 perl 、python),所以說ASP是非常豐富的靈活的 web框架
二、為什么要用python寫Asp
python 最近如火如荼,非常之火,他在各大領域都占有自己舉足輕重的地位,web方面自然也少不了他。 Echosong 已經(jīng)用過django 、web.py 等等python自己的web框架。由于工作需要 Echosong 很大一部分時間是在寫ASP。 而vbs的Asp實在讓人寫得有種 想死感覺,很多功能借助各種 c 或者其他語言寫的dll 穩(wěn)定性難以考量,而echosong又是一個Python 的 十足迷、08年開始接觸python 一直是做為一種愛好沒斷過,只是一直沒用于工作。
三、開始把兩小伙伴融合在一起
1、asp 的安裝 : 隨著IIS 的安裝asp就成為了默認安裝好的web框架
2、安裝 activepython: ActivePython是由 ActiveState 公司推出的專用的 Python 編程和調(diào)試工具。
ActivePython 包含了一個完整的 Python 內(nèi)核,直接調(diào)用 Python 官方的開源內(nèi)核,此外還有 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
連接數(shù)據(jù)庫文件 conn.asp (用pymssql連接mssql數(shù)據(jù)庫)
<%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的相關模塊!?。?/p>
data.asp 文件調(diào)用conn.asp的數(shù)據(jù)連接執(zhí)行sql語句 循環(huán)顯示字段的值到頁面
<%@LANGUAGE="python" CODEPAGE="65001"%>
<!--#include file="conn.asp"-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無標題文檔</title>
</head>
<body>
<%
resList = gmssql.ExecQuery("select admin_Id, admin_UserId from admin")
%>
<table>
<tr><td>管理員編號</td><td>管理賬號</td></tr>
<%
for (admin_Id,admin_UserId) in resList:
Response.write(u"<tr><td>"+str(admin_Id)+"</td>")
Response.write(u"<td>"+str(admin_UserId)+"<td></tr>")
%>
</table>
</body>
</html>

五、用python 寫ASp的優(yōu)勢
1、高度代碼復用: 可以寫自己項目的模塊,把平時常用的代碼 寫成 python的模塊,然后服務器上所有的都可以借助 import 來調(diào)取
2、試用python優(yōu)秀特征: python 強大的Python庫 很多現(xiàn)成的功能直接用,而不要想傳統(tǒng)asp(vbs腳本的)借助 很多 編譯行語言的的dll來實現(xiàn)
3、完全的面向對象: vbs是面向過程的語言,對象的特征很弱,很多面向對象的思想不能用。
六、穩(wěn)定性 和性能的考慮
做了壓力測試 同一時間處理事務的能力,各方面參數(shù)強于vbs的,特別是在連接數(shù)據(jù)庫用了些python 優(yōu)秀開源的池處理模塊,使得很多數(shù)據(jù)庫的瓶頸減輕。(寫博文的時候相關數(shù)據(jù)截圖沒有在此電腦上面)
相關文章
Python內(nèi)置模塊ConfigParser實現(xiàn)配置讀寫功能的方法
這篇文章主要介紹了Python內(nèi)置模塊ConfigParser實現(xiàn)配置讀寫功能的方法,涉及Python使用ConfigParser模塊進行配置讀、寫、修改、刪除等操作的相關實現(xiàn)技巧,需要的朋友可以參考下2018-02-02