Python融于ASP框架

news2024/12/25 4:08:06

一、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">

<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>

 注意第一行 <%@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要强,有兴趣的同学可以自己测试看看!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78202.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕业设计php_thinkphp_vue的校园论坛网站

运行环境 开发语言&#xff1a;PHP 数据库:MYSQL数据库 应用服务:apache服务器 使用框架:ThinkPHP&#xff1a;vue 开发工具:VScode/Dreamweaver/PhpStorm等均可 项目简介 在各学校的校园论坛中,交流是一项非常重要的事情。随着计算机多媒体技术的发展和网络的普及。采用当前流…

Python 数据库开发实战 - Redis命令行客户端与图形客户端的简单使用

上一章节我们已经启动了 redis 服务器&#xff0c;在这一章节我们就爱你过来学习 redis命令行客户端与图形客户端的简单使用&#xff0c;以及 redis 的 一些关键参数。 Redis 命令行客户端 - redis-cli redis-cli 是 Redis 自带的 命令行终端界面&#xff0c;一个简单的程序&…

【Redis】Redis 分布式锁误删问题

本文主要介绍 Redis 分布式锁误删问题的解决 场景一 1. 问题的产生情况一 因为业务阻塞&#xff0c;导致别人的锁被误删 2. 解决思路 获取锁的时候存入标识&#xff0c;释放锁的时候判断标识是否一致&#xff0c;一致可以释放锁&#xff0c;不一致不释放锁。 3. 解决代码 …

今年,我只赚了一点点

大家好&#xff0c;我是 Jack。 之前一直有小伙伴问我&#xff0c;有没有免费的股票信息查询的 API 接口&#xff1f; 我看了一圈&#xff0c;很多免费的 API 接口都年久失修&#xff0c;失效了。 那好吧&#xff0c;咱自己写一个。 想要玩量化交易&#xff0c;第一步&…

015 | 乡村振兴背景下田园综合体建设对农户生计的影响 | 大学生创新训练项目申请书 | 极致技术工厂

研究目的 本项目旨在研究xx市xx区田园综合体建设对农户生计的影响。以农户生计资本和生计恢复力为切入点&#xff0c;以塘坝镇、崇龛镇、太安镇等六个地级镇田园综合体建设前后作对比&#xff0c;研究其田园综合体建设对农户生计的影响&#xff0c;以期找到乡村振兴背景下田园综…

前端岗位编写代码注意规范

&#x1f525;&#x1f525;&#x1f525;关注前端小王hs&#x1f525;&#x1f525;&#x1f525; &#x1f525;&#x1f525;&#x1f525;加底部微信&#x1f525;&#x1f525;&#x1f525; &#x1f525;&#x1f525;&#x1f525;学习指导/前端练手项目推荐/毕设选题/…

基于元胞自动机森林火灾模型及应用(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

Allegro如何打印光绘层操作指导export模式

Allegro如何打印光绘层操作指导export模式 Allegro支持把光绘层面输出成pdf格式,下面介绍export模式如何输出,具体操作如下 打开光绘绘设置 确保光绘设置都是正确的 选择File-Export-PDF 弹出allegro PDF publisher,选择page setup Paper size选择A4,A4纸张 orientati…

SimKD

又搬来一个简单高效的知识蒸馏技术哦~~直接复用教师分类器还能显著减小性能差距的~ 在分类器的上一层通过特征对齐来训练学生模型&#xff0c;并直接复用教师分类器到学生模型中&#xff0c;再使用L2损失进行特征对齐。来自浙江大学的复用教师模型的方法哦~~ 浙大好厉害~~ 论…

2023年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

文章有点长&#xff0c;请耐心看完&#xff0c;绝对有收获&#xff01;不想听我BB直接进入面试分享&#xff1a; 准备过程 蚂蚁金服面试分享 拼多多面试分享 字节跳动面试分享 总结 说起来开始进行面试是年前倒数第二周&#xff0c;上午9点&#xff0c;我还在去公司的公交…

ERD Online 4.0.5 在线数据库建模、元数据管理(免费、私有部署)

4.0.5版本来袭❝ fix(erd): 增加数据库数据查询功能&#xff0c;支持多数据源切换查询&#xff0c;查看sql执行计划fix(erd): 数据查询功能&#xff0c;保留历史查询记录&#xff0c;格式化sql&#xff0c;多级树结构保存历史查询fix(erd): 依赖ERD加密手段&#xff0c;导出保留…

vdbench测试SSD快速入门

介绍 vdbench是一个I/O工作负载生成器&#xff0c;通常用于验证数据完整性和度量直接附加&#xff08;或网络连接&#xff09;存储性能。它可以运行在windows、linux环境&#xff0c;可用于测试文件系统或块设备基准性能。我们下面主要以块设备为介绍对象。 下载及安装 下载…

Linux 在过去几年发生的六种变化

随着时间的推移&#xff0c;Linux 桌面已经发生了变化&#xff0c;这种变化是逐渐发生的&#xff0c;因此这里汇总了过去十年中 Linux 桌面体验发生变化的一些具体方式。资深用户知道 Linux 桌面已经走过了漫长的道路。从前端应用程序设计到后端 Linux 组件&#xff0c;近年来发…

驱动无模块注入dll

文章目录实现效果三环无模块注入的方案反射型dll注入方式的改进零环无模块注入方案petoshellcode无模块注入流程实现代码Xenos注入方案研究IT_MMap注入IT_Thread注入IT_Apc注入火绒的注入思路实现效果 可以看到dll已经成功执行&#xff0c;但是在内存区域里面并没有我们的模块&…

《野球少年》:投捕搭档·棒球联盟

中文名 野球少年 原版名称 バッテリー 别 名 棒球伙伴、Battery 动画制作 ZERO-G 类 型 青春、运动、棒球 剧情简介 身为一名投手&#xff0c;原田巧是位拥有着拔群棒球才能的少年。在初中入学时移居的山间城镇新田市&#xff0c;巧与接住自己全力投球的捕手永仓豪相遇了。…

13 个你应该知道的 Webpack 优化技巧

Webpack 是目前前端开发最重要的构建工具。无论是自己的日常开发&#xff0c;还是准备面试&#xff0c;都应该掌握一些关于 Webpack 的优化技巧。 在这篇文章中&#xff0c;我将从三个方面分享一些我常用的技巧&#xff1a; 提高优化速度 压缩打包文件的大小 改善用户体验。…

[附源码]Python计算机毕业设计SSM基于框架的动漫设计(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MarkDown语法浅析(基础语法)

本篇学习笔记简述MarkDown基础语法。掌握了“MarkDown基本语法简单HTML5标签”的综合运用&#xff0c;就可以把CSDN博文搞得美美哒✌ (本文获得CSDN质量评分【92】)【学习的细节是欢悦的历程】Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经…

SpringMVC笔记

文章目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建springMVC的配…

Android开发中的服务发现技术

我们的日常开发中充满了InterfaceRegistry这种模式的代码&#xff0c;其中&#xff1a; Interface为定义的服务接口&#xff0c;可能是业务功能服务也可能是日志服务、数据解析服务、特定功能引擎等各种抽象层&#xff08;abstract layer&#xff09;&#xff1b;Registry为特…