开始使用
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
<%=P_("auto").upload("xls;xlsx;")%>
自动化上传示例
多种多个数据库同时操作
2.4之前的版本,通过文件配置或动态配置后,以后调用只需要指定表名即可。
M_("数据模型名/数据表名").db.select
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
自动化生成英文验证码
生成英文验证码 verify.asp
自动化生成中文验证码
- 使用方法:P_("auto").cnverify()
生成英文验证码 cnverify.asp
数据库批量添加
- 使用方法:db.data( Recordset对象或二维Dictionary对象 ).mAdd
- 注意事项,必须结束db.data使用,传参的每个记录中如果含有主键,除了Excel数据库外,其他数据库会将主键自动过滤。
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