用python写asp详细讲解


Posted in Python onDecember 16, 2013

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

四 、简单的Demo
连接数据库文件 conn.asp (用pymssql连接mssql数据库)

 

  <%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语句 循环显示字段的值到页面

<%@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详细讲解

五、用python 写ASp的优势

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

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

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

 

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

Python 相关文章推荐
Python使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
Python按行读取文件的简单实现方法
Jun 22 Python
python中利用Future对象回调别的函数示例代码
Sep 07 Python
Python自定义装饰器原理与用法实例分析
Jul 16 Python
Python 调用 zabbix api的方法示例
Jan 06 Python
python中实现控制小数点位数的方法
Jan 24 Python
python导包的几种方法(自定义包的生成以及导入详解)
Jul 15 Python
PyTorch的SoftMax交叉熵损失和梯度用法
Jan 15 Python
Python:__eq__和__str__函数的使用示例
Sep 26 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
python 制作本地应用搜索工具
Feb 27 Python
Python使用UDP实现720p视频传输的操作
Apr 24 Python
python模块restful使用方法实例
Dec 10 #Python
python解析模块(ConfigParser)使用方法
Dec 10 #Python
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 #Python
python socket网络编程步骤详解(socket套接字使用)
Dec 06 #Python
python3图片转换二进制存入mysql
Dec 06 #Python
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
Dec 06 #Python
python多线程编程方式分析示例详解
Dec 06 #Python
You might like
人大复印资料处理程序_补充篇
2006/10/09 PHP
获取PHP警告错误信息的解决方法
2013/06/03 PHP
PHP正则提取不包含指定网址的图片地址的例子
2014/04/21 PHP
Yii2表单事件之Ajax提交实现方法
2017/05/04 PHP
ThinkPHP5 验证器的具体使用
2018/05/31 PHP
Ubuntu 16.04中Laravel5.4升级到5.6的步骤
2018/12/07 PHP
PHP实现百度人脸识别
2019/05/06 PHP
JQuery操作Select的Options的Bug(IE8兼容性视图模式)
2013/04/21 Javascript
jquery实现保存已选用户
2014/07/21 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
微信小程序实现顶部普通选项卡效果(非swiper)
2020/06/19 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
JS实现简单表格排序操作示例
2017/10/07 Javascript
Angular动态绑定样式及改变UI框架样式的方法小结
2018/09/03 Javascript
jQuery对底部导航进行跳转并高亮显示的实例代码
2019/04/23 jQuery
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
Python求算数平方根和约数的方法汇总
2016/03/09 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
PyTorch: 梯度下降及反向传播的实例详解
2019/08/20 Python
Python Web静态服务器非堵塞模式实现方法示例
2019/11/21 Python
Python Pillow.Image 图像保存和参数选择方式
2020/01/09 Python
在pytorch中对非叶节点的变量计算梯度实例
2020/01/10 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Python selenium自动化测试模型图解
2020/04/15 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
详解通过HTML5 Canvas实现图片的平移及旋转变化的方法
2016/03/22 HTML / CSS
英国著名的药妆网站:Escentual
2016/07/29 全球购物
德国BA保镖药房韩文网:kr.ba.de
2017/09/04 全球购物
介绍一下Java的安全机制
2012/06/28 面试题
校园安全教育广播稿
2014/02/17 职场文书
警示教育片观后感
2015/06/17 职场文书
课文《燕子》教学反思
2016/02/17 职场文书
解决goland 导入项目后import里的包报红问题
2021/05/06 Golang
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
Win10防火墙白名单怎么设置?Win10添加防火墙白名单方法
2022/04/06 数码科技