POPASP2.4新增功能介绍

开始使用

POPASP2.4介绍

POPASP介绍

POPASP是一个免费开源的,快速、简单的面向对象的ASP MVC开发框架,遵循开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。POPASP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,目前已成功用用网站的开发。 POPASP有以下特点:

  • 支持五大数据库。POPASP支持Sql Server、MySql、Sqlite3、Access、Excel这五种数据库,而且在采用连贯操作时,五种数据库都提供了统一的方法,方便项目因升级而更换数据库。
  • 可同时操作多种多个数据库。即使一些成熟的PHP框架,也无法做到方便的同时操作多种类型多个数据库,而POPASP作为一个ASP框架,却提供了强大的数据处理功能,可以很方便地同时操作多种多个数据库。
  • 强大的控制台。POPASP提供了像成熟的PHP框架那样强大的控制台,可以实时记录运行时间、SQL语句、控制器流程、耗时较多的应用、错误信息等等,方便开发者实时监控网站性能。
  • 强大的编绎机制。独创的核心编译和项目的动态编译机制,有限减少OOP开发中文件加载的性能开销,并且可以自动销毁Dictionary变量、Recordset变量等等,减少代码量,让开发者只关注业务逻辑,减少销毁变量的分心。
  • 高效的缓存机制。POPASP提供了数据缓存与页面缓存两种缓存机制,减少了数据库连接,提高了页面访问速度。而且两种缓存机制在使用中只需通过一两行代码即可完成。
  • 自动化处理。像经常使用的数据库添加、修改、删除、自增、自减、取反等等操作,POPASP提供了自动化处理功能,一行代码即可生成链接地址,并自动将处理数据库的代码写入控制器。同样常用的上传、下载也提供了自动化处理方法。
  • 丰富的学习途径。学习MVC框架,最烦的是看文档,不过POPASP作者目前提供了视频教程,快速入门(10节),CMS开发(两季49节)。不仅方便了学习框架,而且还能掌握WEB开发技巧。

当然POPASP还有更多实用功能,比如采集、数据库导出Excel、批量添加、批量修改、数据验证、json编码等更多实用功能。POPASP本身具有很多的原创特性,并且倡导大道至简,开发由我的开发理念,用最少的代码完成更多的功能,宗旨就是让WEB应用开发更简单、更快速。为此POPASP会不断吸收和融入更好的技术以保证其新鲜和活力,提供WEB应用开发的最佳实践!

新增功能

  • 对底层数据模型进行改写,增加支持多类型多个数据库同时处理的功能
  • 数据模型增加批量添加的功能
  • 数据模型增加批量修改的功能
  • 数据模型增加事务处理
  • 添加数据时如果含有ID,会自动过滤
  • 添加、修改数据时,字段名不再严格区分大小写
  • 提供了表格样式,调用方法 P_("html").tableCss
  • 提供了分页样式,调用方法 P_("html").pageCss
  • 增加了POPASP_AUTO类,将mvc三者统筹,一行代码解决一类操作,功能如下:
  • P_("auto").dbAdd 自动生成操作数据库添加记录的链接地址,并自动写入控制器该操作代码
  • P_("auto").dbSave 自动生成操作数据库修改记录的链接地址,并自动写入控制器该操作代码
  • P_("auto").dbRemove 自动生成操作数据库删除一行或多行记录(根据ID值)的链接地址,并自动写入控制器该操作代码
  • P_("auto").dbNot 自动生成操作数据库取反链接地址,并自动写入控制器该操作代码
  • P_("auto").dbSet 自动生成操作数据库设置字段值的链接地址,并自动写入控制器该操作代码
  • P_("auto").dbInc 自动生成操作数据库将字段值自增的链接地址,并自动写入控制器该操作代码
  • P_("auto").dbDec 自动生成操作数据库将字段值自减的链接地址,并自动写入控制器该操作代码
  • P_("auto").db1 自动生成操作数据库将字段值设置为1的链接地址,并自动写入控制器该操作代码
  • P_("auto").db0 自动生成操作数据库将字段值设置为0的链接地址,并自动写入控制器该操作代码
  • P_("auto").checkAdd 自动生成数据模型添加数据时的js前端验证代码,并自动写入控制器操作代码
  • P_("auto").checkSave 自动生成数据模型修改数据时的js前端验证代码,并自动写入控制器操作代码
  • P_("auto").auto 自动生成js填充表单的代码,并自动写入控制器操作代码
  • P_("auto").Download 自动生成文件下载的链接地址,并自动写入控制器该操作代码
  • P_("auto").Upload 自动生成文件上传html代码,同时生成处理上传文件的asp文件
  • P_("auto").htmlAdd 自动生成添加数据的html,界面粗糙,只可作为演示或者管理员临时修改数据使用
  • P_("auto").htmlSave 将数据库中的数据以表格的形式显示,界面粗糙,只可作为演示或者管理员临时修改数据使用

版权说明

POPASP遵循开源许可协议发布,意味着你可以免费使用POPASP,甚至允许把你基于POPASP开发的应用开源或商业产品发布/销售。


新增功能介绍

POPASP2.4并未修改POPASP2.3的一些既定写法,而是增加了更多功能,POPASP2.4r 最大亮点就是多种多个数据库同时操作与自动化处理功能。

  • 这部分功能介绍时我们提供详尽的文档
  • 为了说明方便,我们提供了精彩的案例

2.4之前的版本虽然可以切换不同数据库,但使用起来非常麻烦,其实它更趋于处理同种同个数据库,下面为了说明方便均以db.select举例。

自动化下载文件

  • 使用方法1: P_("auto").download(文件路径)
  • 使用方法2: P_("auto").download( array(文件路径 , 文件别名 ))
	  
	<a href="<%=P_("auto").download(文件路径)%>">
	
	<a href="<%=P_("auto").download(array(文件路径 ,文件别名 ))%>">	
	
	  

自动化下载示例

自动化上传文件

  • 使用方法: P_("auto").upload( array( input输入框的name值 , 文件类型 ))
  • 功能说明: 自动生成上传文件所需要的html代码,同时会生成传文件所需要的处理文件__popasp__/upfile_types.asp
	  
	<%=P_("auto").upload("upfile")%>
	
	  

自动化上传示例

多种多个数据库同时操作

  • 2.4之前的版本

2.4之前的版本,通过文件配置或动态配置后,以后调用只需要指定表名即可。

	  
	M_("数据模型名/数据表名").db.select
	
	
  • 2.4版本

2.4版本沿用了以前版本的处理方式,可以通过文件配置或动态配置后只通过指定表名来调用。如果想同时操作多个数据库,那么可以给M_函数传入数组。

	  
	M_( Array( "数据模型名/数据表名" , "access" , "数据库路径" , "access类型" ) ).db.select
	
	M_( Array( "数据模型名/数据表名" , "access" , "数据库路径" ) ).db.select
	  
	M_( Array( "数据模型名/数据表名" , "excel" , "数据库路径"  ).db.select  
	
	M_( Array( "数据模型名/数据表名" , "sqlite3" , "数据库路径"  ).db.select
	
	M_( Array( "数据模型名/数据表名" , "mysql" , "数据库名" , "主机" , "用户名" , "密码"  ).db.select
	
	M_( Array( "数据模型名/数据表名" , "sqlserver" , "数据库名" , "主机" , "用户名" , "密码"  ).db.select
	
	  

通过数组可以传入多个参数,其中第一个参数即数据模型名或表名是必须的,后面的几个参数如果没有赋值,则会从配置中读取

多数据库处理案例 databases.asp

自动化生成英文验证码

  • 使用方法:P_("auto").verify()

生成英文验证码 verify.asp

自动化生成中文验证码

  • 使用方法:P_("auto").cnverify()

生成英文验证码 cnverify.asp

数据库批量添加

  • 使用方法:db.data( Recordset对象或二维Dictionary对象 ).mAdd
  • 注意事项,必须结束db.data使用,传参的每个记录中如果含有主键,除了Excel数据库外,其他数据库会将主键自动过滤。
  • 示例代码,从数据表取出10条添加到自身
	  
	sub do_madd
		dim rs,m
		set m = M_( Array( "总分" , "excel" , "成绩单.xls" ) )
		m.db.prikey = "序号"
		set rs = m.db.fieldRev("序号").top(10).select
		m.db.data(rs).mAdd
		that.success("数据批量添加成功")
	end sub	

		

批量添加案例 madd.asp

数据库批量修改

  • 使用方法:db.data( Recordset对象或二维Dictionary对象 ).mSave
  • 注意事项,必须结合db.data使用,且其参数必须为二维Dictionary对象或Recordset对象,每条数据中必须含有主键

批量修改案例 msave.asp

自动添加数据

  • 使用方法1:P_("auto").dbAdd( Array("数据模型名或表名","控制器方法名") )
  • 使用方法2:P_("auto").dbAdd( "数据模型名或表名" )
  • 注意事项,参数中的数据模型名或表名取的是当前配置的数据库参数,这一点一定要搞清楚。

自动添加数据 dbAdd.asp

js自动验证添加数据

  • 使用方法1:P_("auto").checkAdd( Array("数据模型名或表名","控制器方法名") )
  • 使用方法2:P_("auto").checkAdd( "数据模型名或表名" )
  • 注意事项,参数中的数据模型名或表名取的是当前配置的数据库参数,这一点一定要搞清楚。必须手工创建model类,并且创建db.validate_数组,否则无法达到验证效果。同时还得添加验证的js代码 onsubmit="return popasp_check();"

js自动验证添加数据 checkAdd.asp

生成添加数据的html与操作

  • 使用说明:htmlAdd会自动生成html的添加数据表格,同时自动添加dbAdd与checkAdd方法
  • 使用方法:P_("auto").htmlAdd( "数据模型名或表名" )
  • 该方法中使用了 checkAdd 、dbAdd ,形成了一套完整的可前后台验证的添加数据模块
  • 如果模型名与表名不一致,而又传入的是表名,则起不到前后台验证效果
  • 自动生成添加数据的html,界面粗糙,只可作为演示或者管理员临时修改数据使用

生成添加数据的html与操作 htmlAdd.asp

js自动填充表单

  • 使用方法:P_("auto").auto( 表名或模型名, id , 排除的字段 )
  • 参数说明:model_name为表名或模型名,id为数据表中某条记录的主键值,fieldRev为排除字段
  • 在表单的hmtl下面还需要写入js代码<script>popasp_auto();</script>才能完成自动填充
  • 自动写入控制器相关方法,并自动完成链接的输出

自动添加数据 auto.asp

自动修改数据

  • 使用方法1:P_("auto").dbSave( Array("数据模型名或表名","控制器方法名") )
  • 使用方法2:P_("auto").dbSave( "数据模型名或表名" )
  • 注意事项,参数中的数据模型名或表名取的是当前配置的数据库参数,这一点一定要搞清楚。

自动修改数据 dbSave.asp

js自动验证修改数据

  • 使用方法1:P_("auto").checkSave( Array("数据模型名或表名","控制器方法名") )
  • 使用方法2:P_("auto").checkSave( "数据模型名或表名" )
  • 注意事项,参数中的数据模型名或表名取的是当前配置的数据库参数,这一点一定要搞清楚。必须手工创建model类,并且创建db.validate_数组,否则无法达到验证效果。同时还得添加验证的js代码 onsubmit="return popasp_check();"

js自动验证修改数据 checkSave.asp

生成修改数据的html与操作

  • 使用说明:htmlSave 会自动生成html的添加数据表格,同时自动添加dbSave、checkSave、auto方法
  • 使用方法:P_("auto").htmlSave( "数据模型名或表名" ),浏览器地址栏必须传入id,如 save.asp?id=1,否则无法定位修改哪条记录
  • 使用方法:P_("auto").htmlSave( Array("数据模型名或表名" ,ID ) )
  • 该方法中使用了 checkSave 、dbSave、auto ,形成了一套完整的可前后台验证的添加数据模块
  • 如果模型名与表名不一致,而又传入的是表名,则起不到前后台验证效果
  • 自动生成添加数据的html,界面粗糙,只可作为演示或者管理员临时修改数据使用

生成添加数据的html与操作 htmlSave.asp

以表格显示数据表

  • 将数据库中的数据以表格的形式显示,表格的最后一行是分页,表格的最右行是操作(修改|删除)
  • 使用方法:P_("auto").htmlList( Recordset对象, 数据表名, 修改数据的链接 )
  • 一般我们不使用该方法,而使用经过包装的数据模型方法htmlList,它是连贯操作,仅一个参数,即“修改数据的链接”
  • 这样一来,使用方法就成了:M_("数据表名").db.htmlList("save.asp")
  • 界面粗糙,只可作为演示或者管理员临时修改数据使用

以表格显示数据表 htmlList.asp

自动化完成设置值的操作

  • 数据模型设置值的自动完成,使用了db.setField,并只能设置一个字段的值
  • 使用方法:<a href="<%=P_("auto").dbSet(表名,ID,字段名,字段值)%>" >设置值</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

设置值的操作 dbSet.asp

自动化完成设值为1操作

  • 数据模型值设置为1的自动完成,使用了db.setField
  • 使用方法:<a href="<%=P_("auto").db1(表名,ID,字段名)%>" >值设为1</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

设值为1操作 db1.asp

自动化完成设值为0操作

  • 数据模型值设置为0的自动完成,使用了db.setField
  • 使用方法:<a href="<%=P_("auto").db0(表名,ID,字段名)%>" >值设为1</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

设值为0操作 db0.asp

自动化完成自增操作

  • 数据模型自增长的自动完成,使用了db.setInc
  • 使用方法:<a href="<%=P_("auto").dbInc(表名,ID,字段名,增长值)%>" >自增</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

自增操作 dbInc.asp

自动化完成自减操作

  • 数据模型自增长的自动完成,使用了db.setInc
  • 使用方法:<a href="<%=P_("auto").dbDec(表名,ID,字段名,减小值)%>" >自减</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

自减操作 dbDec.asp

自动化完成取反操作

  • 数据模型取反的自动完成,使用了db.setNot
  • 使用方法:<a href="<%=P_("auto").dbNot(表名,ID,字段名)%>" >取反</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

取反操作 dbNot.asp

自动化完成数据模型删除一行或多行记录的操作

  • 数据模型删除的自动完成,使用了db.Remove
  • 使用方法:<a href="<%=P_("auto").dbRemove(表名,ID)%>" >删除</a>
  • 自动完成链接的输出,并自动写入控制器相关方法

删除一行记录 dbRemove.asp

自动化生成表情

  • POPASP中的表情可以一行代码生成,它使用的是框架自带的数据库
  • 使用方法:<%=P_("auto").mood(文章表名标识,文章的ID)%>
  • 使用的时候必须在配置项AUTO_EXTENDS_MODULE中,加上mood模块名,多个以英文逗号分隔

删除一行记录 mood.asp

自动化生成顶踩

  • POPASP中的顶踩功能可以一行代码生成,它使用的是框架自带的数据库
  • 使用方法:<%=P_("auto").digg(文章表名标识,文章的ID)%>
  • 使用的时候必须在配置项AUTO_EXTENDS_MODULE中,加上digg模块名,多个以英文逗号分隔

删除一行记录 digg.asp

POPASP是一款ASP版的MVC框架,具备多文件入口、控制器继承、模型操作、控制台、自动化完成等功能。 本框架在已有的功能上,不管从组织结构上,还是从代码质量上,以及运行效率上都做到了单服务器最佳的效果。使用POPASP框架适合开发BBS、电子商城、SNS、CMS、Blog、企业门户等中小型系统。另外,本框架特别适合学习ASP使用,可以让你认识框架、分析框架内幕、从而达到编写自己框架的目的。并能通过框架的编写将你零散的各个ASP知识点组织在一起应用,本框架配置出了一套简易的CMS后台管理系统。:)