zl程序教程

您现在的位置是:首页 >  后端

当前栏目

用python写asp详细讲解

PythonASP 详细 讲解
2023-06-13 09:15:14 时间

一、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扩展,同时还提供了全部的访问WindowsAPIs的服务。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数据库)

 

复制代码代码如下:

 <%importpymssql
classMSSQL:
    def__init__(self,host,user,pwd,db):
        self.host=host
        self.user=user
        self.pwd=pwd
        self.db=db

    def__GetConnect(self):
        ifnotself.db:
            Response.write(NameError,"NoconnecInfo")
        self.conn=pymssql.connect(host=self.host,user=self.user,password=self.pwd,database=self.db,charset="utf8")
        cur=self.conn.cursor()
        ifnotcur:
            Response.write(NameError,"connectErr")
        else:
            returncur
    defgetCur(self):
        returnself.__GetConnect()
    defExecQuery(self,sql):
        cur=self.__GetConnect()
        cur.execute(sql)
        resList=cur.fetchall()
        self.conn.close()
        returnresList

    defExecNonQuery(self,sql):
        cur=self.__GetConnect()
        cur.execute(sql)
        self.conn.commit()
        self.conn.close()
gmssql=MSSQL(host="****",user="****",pwd="***",db="***")
gcur=MSSQL.getCur()
%>
 

这里可以自由的importpython的相关模块!!!

data.asp文件调用conn.asp的数据连接执行sql语句循环显示字段的值到页面

复制代码代码如下:


<%@LANGUAGE="python"CODEPAGE="65001"%>
<!--#includefile="conn.asp"-->
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8"/>
<title>无标题文档</title>
</head>
<body>
<%
resList=gmssql.ExecQuery("selectadmin_Id,admin_UserIdfromadmin")
%>
<table>
    <tr><td>管理员编号</td><td>管理账号</td></tr>
<%
for(admin_Id,admin_UserId)inresList:
    Response.write(u"<tr><td>"+str(admin_Id)+"</td>")
    Response.write(u"<td>"+str(admin_UserId)+"<td></tr>")
%>
</table>
</body>
</html>


五、用python写ASp的优势

1、高度代码复用:可以写自己项目的模块,把平时常用的代码写成python的模块,然后服务器上所有的都可以借助import来调取

2、试用python优秀特征:python强大的Python库很多现成的功能直接用,而不要想传统asp(vbs脚本的)借助很多编译行语言的的dll来实现

3、完全的面向对象:vbs是面向过程的语言,对象的特征很弱,很多面向对象的思想不能用。

 

六、稳定性和性能的考虑
做了压力测试同一时间处理事务的能力,各方面参数强于vbs的,特别是在连接数据库用了些python优秀开源的池处理模块,使得很多数据库的瓶颈减轻。(写博文的时候相关数据截图没有在此电脑上面)