用python寫asp詳細(xì)講解
一、ASP
想到ASP 很多人會說 “asp語言不能面向?qū)ο?,功能單一,很多東西實(shí)現(xiàn)不了” 等等諸如此類。 以上說法都是錯(cuò)誤的,其一ASp不是一種語言是 微軟用來代替CGI的一種web框架,只不過我們一直被扭曲在 vbs就是asp的默認(rèn)語言,把ASP 和 vbs 之間劃了等號。 其二 Asp 功能其實(shí)并不單一 此web 提供5個(gè)對象 (request、 response、 server、 session、 appliaction)這就是asp與生俱來的東西,除了這些東西都是Asp 所用的腳本級的東西。 而ASP 借助了 Asp.dll動態(tài)鏈接庫,理論上可以試用一切腳本語言包括(vbscript 、jsscript、 actionscript、 perl 、python),所以說ASP是非常豐富的靈活的 web框架
二、為什么要用python寫Asp
python 最近如火如荼,非常之火,他在各大領(lǐng)域都占有自己舉足輕重的地位,web方面自然也少不了他。 Echosong 已經(jīng)用過django 、web.py 等等python自己的web框架。由于工作需要 Echosong 很大一部分時(shí)間是在寫ASP。 而vbs的Asp實(shí)在讓人寫得有種 想死感覺,很多功能借助各種 c 或者其他語言寫的dll 穩(wěn)定性難以考量,而echosong又是一個(gè)Python 的 十足迷、08年開始接觸python 一直是做為一種愛好沒斷過,只是一直沒用于工作。
三、開始把兩小伙伴融合在一起
1、asp 的安裝 : 隨著IIS 的安裝asp就成為了默認(rèn)安裝好的web框架
2、安裝 activepython: ActivePython是由 ActiveState 公司推出的專用的 Python 編程和調(diào)試工具。
ActivePython 包含了一個(gè)完整的 Python 內(nèi)核,直接調(diào)用 Python 官方的開源內(nèi)核,此外還有 Python 編程需要用到的 IDE,并附加了一些 Python 的 Windows擴(kuò)展,同時(shí)還提供了全部的訪問 Windows APIs 的服務(wù)。ActivePython 雖然不像純 Python 那樣是開源的,但是也可以免費(fèi)下載使用。(注意版本只能下載 2.5的,一開始echosong也不行下載了2.7 的版本 結(jié)果無情的500 個(gè)中緣由也不清楚,不夠2.5的版本也夠用了)
3、命令行運(yùn)行 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的相關(guān)模塊?。?!
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>無標(biāo)題文檔</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、高度代碼復(fù)用: 可以寫自己項(xiàng)目的模塊,把平時(shí)常用的代碼 寫成 python的模塊,然后服務(wù)器上所有的都可以借助 import 來調(diào)取
2、試用python優(yōu)秀特征: python 強(qiáng)大的Python庫 很多現(xiàn)成的功能直接用,而不要想傳統(tǒng)asp(vbs腳本的)借助 很多 編譯行語言的的dll來實(shí)現(xiàn)
3、完全的面向?qū)ο螅?vbs是面向過程的語言,對象的特征很弱,很多面向?qū)ο蟮乃枷氩荒苡谩?/p>
六、穩(wěn)定性 和性能的考慮
做了壓力測試 同一時(shí)間處理事務(wù)的能力,各方面參數(shù)強(qiáng)于vbs的,特別是在連接數(shù)據(jù)庫用了些python 優(yōu)秀開源的池處理模塊,使得很多數(shù)據(jù)庫的瓶頸減輕。(寫博文的時(shí)候相關(guān)數(shù)據(jù)截圖沒有在此電腦上面)
相關(guān)文章
python3實(shí)現(xiàn)TCP協(xié)議的簡單服務(wù)器和客戶端案例(分享)
下面小編就為大家?guī)硪黄猵ython3實(shí)現(xiàn)TCP協(xié)議的簡單服務(wù)器和客戶端案例(分享)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測試
這篇文章主要介紹了基于Python組裝jmx并調(diào)用JMeter實(shí)現(xiàn)壓力測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11
python通過get,post方式發(fā)送http請求和接收http響應(yīng)的方法
這篇文章主要介紹了python通過get,post方式發(fā)送http請求和接收http響應(yīng)的方法,涉及Python使用urllib模塊與urllib2模塊實(shí)現(xiàn)get與post發(fā)送數(shù)據(jù)的相關(guān)技巧,需要的朋友可以參考下2015-05-05
Pycharm中配置使用Anaconda的虛擬環(huán)境進(jìn)行項(xiàng)目開發(fā)的圖文教程
今天在一臺電腦上跑環(huán)境的時(shí)候,發(fā)現(xiàn)已經(jīng)裝了Pytorch了,但是運(yùn)行沒有用,提示報(bào)錯(cuò):OSError:?[WinError?126]?找不到指定的模塊,但其實(shí)cmd進(jìn)入虛擬環(huán)境是可以調(diào)用torch的,故本文給大家介紹了Pycharm中配置使用Anaconda的虛擬環(huán)境進(jìn)行項(xiàng)目開發(fā)的圖文教程2024-09-09
Python 基礎(chǔ)之字符串string詳解及實(shí)例
這篇文章主要介紹了Python 字符串(string) 的相關(guān)資料,需要的朋友可以參考下2017-04-04
淺談pytorch中torch.max和F.softmax函數(shù)的維度解釋
這篇文章主要介紹了淺談pytorch中torch.max和F.softmax函數(shù)的維度解釋,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06

