Deep BlueVBScriptWMIPHPC语言JavaScriptWindows API路由器Windows函数Python

用Python脚本写ASP页面

很多不明真相的同学认为 ASP 是一种编程语言,事实上并非如此。ASP 是 Active Server Page 的缩写,意为“动态服务器页面”,是微软公司开发的代替 CGI 脚本程序的一种应用。

ASP 是语言无关的,理论上你可以用任何支持 Active Scripting 的语言来编写,比如 VBScript、JScript、Python、Perl等等,只不过 VBScript 比较常用而已,以至于有些同学认为 ASP 就是 VBS。

前天无意中看到“王晔的流水账”里一篇名为《ASP/VBScript中CHR(0)的由来以及带来的安全问题》的文章,里面有这么一段:

好,我们再来看为什么ASP/VBScript中保留了这个特性,我们知道VBScript是VB(Visual Basic)的一个子集,VB是什么,VB是做Windows应用程序开发的,说到Windows应用程序开发那么就可能会调用到Windows系统的 API,而这些API函数则大多是用C语言编写的,很明显为了VB能够兼容这些API,必然字符串要引入CHR(0)字符也就是vbNullChar,同时也要有C语言字符串处理的特性,就是遇到CHR(0)就标识着字符串结束,无论接下来是什么内容

说 VBS 遇到 CHR(0) 就标识着字符串结束,这我是不认同的,VBS 内部以 BSTR 来表示字符串,而 BSTR 是兼容 NUL 字符的,问题应该出在 ASP 引擎上面。于是就在下面留言,但是从他的回复看,似乎也并不认同我的观点。他的回复太长我就不全文引用了,只引用最后一句

要是能把Python+ASP环境调好可能会更好说明这点。

这就是我写这篇文章的原因,啰嗦了那么多,现在正式进入 Python + ASP 的世界。

首先要配置 Python + ASP 开发环境:

1、下载 ActivePython 2.5.6.10,不要用其他版本;

2、运行 C:\Python25\Lib\site-packages\win32comext\axscript\client\pyscript.py;

3、如果没有安装 IIS 则安装,已经安装的重启 IIS;

4、没有了,就这么简单。很多人配置不好是因为他们使用的是最新版本的 Python,这样只能得到 HTTP 500 Error 而已。

开发环境搭建好了,写个简单的 Python 脚本测试一下吧:

<%@LANGUAGE="Python" CODEPAGE="65001"%>
<%Response.Write("Hello World")%>

在浏览器输入 127.0.0.1,终于看到了熟悉的 Hello world。

然后测试一下到底是 ASP 的问题还是 VBS 的问题:

<%@LANGUAGE="Python" CODEPAGE="65001"%>
<%Response.Write("Hello \x00 World")%>

再次输入 127.0.0.1,很可惜,这次只看到 Hello,完胜。

不知道 ASP + Python 的运行效率如何,有时间可以玩玩 ASP + Python + Django 开发。


http://ken.gw.to/