基于HTTP协议的CURD框架_第1页
基于HTTP协议的CURD框架_第2页
基于HTTP协议的CURD框架_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于HTTPB议的CURD匡架【摘要】本文针对于WE酸目中业务层对数据库的基本操作,也就是增删查改操作的常用代码归纳总结,依据于软件工程中的代码高可复用原则,书写的框架。主要应用于时下流行的关系数据库,也称作第三代数据库。如果用面向对象的模式书写业务层的话,那么多数的IO通信都是数据对象,要进行持久化操作的时候,就需要操作数据库。由于现在的主流数据库是关系数据库,其本质是规范话的二维表,需要我们做一个从对象到关系模型的映射。本框架就是针对于这类操作的一种简化,因为不可能规避,所以只能简化。【关键词】HTTP&议;CURD匡架在软件工程的实践中,会或多或少的感觉到理论和实践中的差别,可行性与工程

2、使用的差别。即使理论知识很扎实,在实践和工程构建的时候还是会遇到很多的问题。我们在开发一个WEBZ用的时候,粗略可分为表示层、业务层、数据库层(当然依据于工程的大小所分的层次自然不一样)。表示层主要是负责人机交互的部分和HTTRK据请求和解析,业务层主要负责逻辑计算和调用关系,数据库层主要是负责持久化存储的事情(优质的项目大部分的数据运算都是交给数据库的函数和存储过程)。在linux设计风格中,强调一个工具只做一件事情,剩下的事情通过管道来进行通信就好了。在现代的软件工程中,调用成为越来越长用的功能,当然也有很多人对自己的常用的代码进行总结,每次复制粘贴改。对于常用的代码的复用操作还是建议封装

3、成函数或者是类,对入口参数进行通用性的修改。当然在当下如果能贡献给开源组织那就是更好的举措了,不仅能供给别人使用,还能有人对你代码的问题提出修改意见。一、课题及研究背景和研究意义随WE的端的发展技术越来越迅猛,js也随着越来越快。对于一个现代的软件工程项目来说,持久化存储都是使用数据库进行操作。当我们使用ajax提交请求,业务层解析逻辑之后,将对数据库执行sql语句或者是执行存储过程。在有些不是很注重安全,专注于原型的高速敏捷开发的时候,就会觉得业务层就是解析ajax请求,执行sql,取回结果集返回给ajax,最后将数据拿到客户端。在有些时候,也在想,能不能直接使用ajax请求,操作数据库呢。

4、这样一来可以减少开发的人力成本,二来可以减少调试和测试的成本。对于一些快速原型开发来说,有着重要的意义。当然很多WEW发的主流语言都有相应的数据库框架(ORM,比如java中SSH的H,PHP中TP的model,Django中的ORMTB对数据库进行了简化的操作,不过他们的封装都依赖于框架本身的路由、视图、控制器等等。他们都只是强大框架中的一个核心组件罢了,如果想使用,基本要学习框架中的百分之八十的功能。不能做到开箱即用的程度。二、主体架构设计本次毕业设计采用python的tronado框架编写。对于语言和框架的考虑,个人觉得java代码太臃肿,CM以移植性又太差,只能在PHPpython、p

5、erl中选择,考虑到PHP写起来还是没有python简洁,perl操作数据库的文档更少。就选择了python语言,对于python的webframework时下流行的有Django、tronado、web2py、flask、bottle。再考虑到学习成本和性能问题还是选择了最熟悉的tronado。不过python做web的缺陷就是很多问题不能在编译过程中暴露出来。数据库采用sqlite3。选择这个数据库还是因为sqlite3是基于文件的,可移植性好。而且比较简单不用考虑端口和数据库独立进程的问题。而且所有基于linux的服务器都内置了sqlite3,这也给使用和部署的人员带来了便利。在使用层面

6、sqlite3和主流的数据库管理工具都兼容,而且还有很多免费的sqlite3的可视化工具。不过还是有一定程度的缺陷的,sqlite3不支持存储过程和函数,只能采用python表达式拼接sql,sqlite3可以不指定字段类型,数据量达到一定时会有性能的问题。三、接口设计我们在接口的设计时,讲究的是一个接口制作一件事情,接口和接口之前所做的事情没有相似性,这样在用户调用接口时不会产生歧义,不会因为要使用a功能而不知道调用a1还是a2产生纠结。在面向对象三大特性来说,封装,继承和多态。遇到这种问题我们就用多态来解决。增加可选参数,来实现统一大功能下的微调。四、技术实现本框架主体采用python语言

7、的tornado框架编写,tornado主要有hanlder、路由、配置这么几部分组成。根据简单工厂设计模式,我们采用了一个接口对应一个路由,一个路由对应一个类,也就是我们刚才提到的hanlder进行接受请求参数,执行数据库操作,并获取数据库执行结果,将json格式的结果返回到相应中。五、编码、测试以及过程中的技术难点实现了上面的设计就是下面的编码操作了,通过http请求接受过来的dbname、tablename、以及字段名和字段值实现对数据库的增删查改的操作。因为接受过来参数,使用python的占位符拼接sql语句,可能后期sql比较多会做一层封装,所以项目主要遇到的问题一般出现在sql拼接

8、的问题。也没有太大的技术难点。在测试过程中,发现打印的结果集格式有时候不是很理想,建议之后修改默认参数格式为json,也可以改为csv、xml等格式。对于安全性来说,没有设计token,用户口令的一类东西,计划后续再进行修改。【参考文献】1赵琦,蒋朝惠,周雪梅,宋紫华.一种基于HTTP协议的隐蔽隧道及其检测方法J.计算机与现代化,2019(06):16-23+29.欧思维.TCP/IP网络与ICN网络融合研究D.北京邮电大学,2019.赵文浩.加密http协议的实现J.通讯世界,2019,26(03):3-4.4李成哲.基于HTTP协议报文分析的计算机网络取证方法J.网络安全技术与应用,2019(03):101-102.5路辉,高尚飞,李少龙.基于HTTPB议的业务系统网页数据采集应用集成J.电子技术与软件工程,2019(02):1-3.6刘浩.基于ONVIF协议的视频服务器的设计与实现D.浙江工业大学,2019.7周继宇.基于HTTP协议的多线程断点续传软件设计与实现J.计算机产品与流通,2018(09):129-130.8程磊.基于HTTPB议的多线程网络下载框架的研究与实践J.科技经济导刊,2016(18

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论