Python 融于ASP框架

 

一、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、命令行运行(python配置系统环境变量) python C:\Python25\Lib\site-packages\win32comext\axscript\client\pyscript.py;
  4、完成上面两步就可以着手写python的Asp了
 

四 、简单的Demo

  连接数据库文件 conn.asp (用pymssql连接mssql数据库)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<%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语句 循环显示字段的值到页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<%@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">
<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>

 注意第一行 <%@LANGUAGE="python" CODEPAGE="65001"%> 告诉 Asp.dll 用的是python脚本。因为conn.asp文件是被data应用了,所以不需要加这行,如果直接执行conn.asp会报错,因为默认是vbs脚本。

运行 data.asp 就能在页面上面显示 相应的数据展示效果

五、用python 写ASp的优势

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

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

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

  

六、稳定性 和性能的考虑

做了压力测试 同一时间处理事务的能力,各方面参数强于vbs的,特别是在连接数据库用了些python 优秀开源的池处理模块,使得很多数据库的瓶颈减轻

以下为性能压力测试

<模拟的用户数,两种情况公用一个>

<python 脚本连接数据>

    <python吞吐情况>

跟vbs 的 ADO做些对比 ADO图没有截取过来,但是从吞吐量,和事务处理速度都比Vbs ADO要强,有兴趣的同学可以自己测试看看!!!

PYTHON ASP FRAMEWORK的更多相关文章

  1. python+robot framework实现测报告定制化和邮件发送

    前面已经介绍了python+robot framework自动化框架和基本原理的实现,详情请看 python+robot framework接口自动化测试 本章主要讲解报告已经产生那如何以自动化的方式 ...

  2. Linux CentOS下Python+robot framework环境搭建

    Linux CentOS下Python+robot framework环境搭建   by:授客 QQ:1033553122 操作系统环境:CentOS 6.5-x86_64 下载地址:http://w ...

  3. Python Web Framework All In One

    Python Web Framework All In One Django and Flask are the top Python web frameworks so far. Django ht ...

  4. python+robot framework接口自动化测试

    python+requests实现接口的请求前篇已经介绍,还有不懂或者疑问的可以访问 python+request接口自动化框架 目前我们需要考虑的是如何实现关键字驱动实现接口自动化输出,通过关键字的 ...

  5. Python + Robot Framework 环境搭建

    一.Python 安装 说明:由于RIDE是基于python2.x开发,后期未做python3.x兼容,所以这里安装python2.7. 链接: https://pan.baidu.com/s/1yf ...

  6. Linux CentOS下Python+robot framework环境搭建

    转载自:http://blog.sina.com.cn/s/blog_13cc013b50102vof1.html 操作系统环境:CentOS 6.5-x86_64 下载地址:http://www.c ...

  7. <转>准备Eclips+python+robot framework环境

    关于python: path添加:C:\Python27;C:\Python27\Scripts; 新加一项:  PYTHON_HOME    C:\Python27 再不行的话,加一个用户变量: P ...

  8. Python+Robot Framework实现UDS诊断自动化测试

    一.环境搭建 1.概述 由于项目需要进行UDS诊断测试,所以对这方面进行了研究学习,网上很少能查询到相关资料,故记录一下UDS自动化测试开发过程,由于保密原则,案例都是Demo,希望能帮到感兴趣的朋友 ...

  9. [Project] Simulate HTTP Post Request to obtain data from Web Page by using Python Scrapy Framework

    1. Background Though it's always difficult to give child a perfect name, parent never give up trying ...

随机推荐

  1. Redis源代码分析(十一年)--- memtest内存测试

    今天,我们继续redis源代码test下测试在封装中的其它文件.今天读数memtest档,翻译了,那是,memory test 存储器测试工具..可是里面的提及了非常多东西,也给我涨了非常多见识,网上 ...

  2. Putty是一个专业的SSH连接客户端

    http://www.putty.ws/PuTTY-LinuxVPS Putty是一个专业的SSH连接客户端,当然可以用来连接Linux操作系统的VPS.下文是Putty连接工具的使用方法与详细教程, ...

  3. Ubuntu 14.1 构造NFS

    主办IP:129.1.4.189.目标计算机IP:129.1.22.96 1.运行命令:apt-get install nfs-kernel-server ; 2.运行命令:mkdir /tftpbo ...

  4. Android Animation 动画Demo(Frame帧动画)

    上一页介绍Animation动画第一:Tween吐温动画. 本文介绍了以下Animation也有动画的形式:Frame帧动画. Frame动画是一系列照片示出的顺序按照一定的处理,和机制,以放电影很阶 ...

  5. 编译器神vim改头换面

    我相信,农民听到两件神器码,首先emacs,首先vim.大家都知道e党和v党总是吵架.竟,这无助于嘈杂.只是每个人都有自己的道理也适用.在接触vim,同时联系emacs.对于作家,我认为vim更适合. ...

  6. IEnumerable,IQueryable的区别

    IEnumerable,IQueryable之前世今生 IEnumerable<T>在.Net2.0中我们已经很熟悉了.你想要利用Foreach迭代吗?实现IEnumerable<T ...

  7. Java日期的格式String类型GMT,GST换算成日期Date种类

    请尊重他人的劳动成果.转载请注明出处:Java日期格式化之将String类型的GMT,GST日期转换成Date类型 http://blog.csdn.net/fengyuzhengfan/articl ...

  8. 乐视TV2015校园招聘A第二个大的发行量(of中国Academy科学大学站)

    标题叙述性说明:鉴于阵列A,尺寸n,数组元素1至n数字.但是一些数字多次出现.有些数字不出现.请设计算法和程序,统计数据不会出现什么.什么号码多次出现.在O(n)时间复杂度,O(1)在完成它的空间复杂 ...

  9. 10分钟学会Linux

    10分钟学会Linux有点夸张,可是能够让一个新手初步熟悉Linux中最重要最主要的知识,本文翻译的英文网页在众多Linux入门学习的资料中还是很不错的. 英文地址:http://freeengine ...

  10. 前端学习笔记(zepto或jquery)——对li标签的相关操作(五)

    对li标签的相关操作——has与find的差异性 demo代码: <ul> <li><p>1</p></li> <li>2< ...