Synopse mORMot框架样例学习04 - HTTP Client-Server
例04展示的是HTTP客户端/服务器的数据库应用.这个示例里边有4个工程,Project04Client.dpr和Project04Server.dpr是一组客户端/服务端数据库示例,这个和例03基本差不多,区别是例04应用的是HTTP协议(例03应用的是命名管道),客户端和服务器通过约定的端口进行通讯,并且例04的主单元Unit2.pas中数据库初始化的时候加上了用户验证表的创建:
DB := TSQLRestServerDB.Create(Model, ChangeFileExt(ExeVersion.ProgramFileName, '.db3'), true{ 添加了用户验证 }); { 之前创建的时候,没有true这个选项 } // 其调用的构造函数原型如下: {constructor Create( // aModel: TSQLModel; aDB: TSQLDataBase; aHandleUserAuthentication:boolean=false; aOwnDB: boolean=false );reintroduce; overload; virtual; 通过指定文件名初始化一个数据库REST服务器,TSQLRestServerDB会初始化一个已有的数据库, 在需要的时候会销毁释放它,此文件在磁盘上加密存储(是将主数据库加密,而不是运行期的加密), 然后调用其他重载的构造函数初始化服务. }
服务端运行后,通过sqliteadmin查看数据库文件能看到多了2个表格(AuthGroup和AuthUser)

然后例04还有2个工程文件,一个是Project04ServerStatic.dpr工程,从字面上看,这是一个静态服务器,说明里边指出,它提供REST服务,我们先在工程目录下建一个www文件夹,然后放一个index.html文件,文件内容简单点:
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>测试网页</title> </head> <body> <h1>问题一:</h1> <p>例04想要告诉我们什么问题呢?</p> </html>
一个文本文件memo.txt,内容为:"这是一个TXT文件,我们可以访问到它."
一个图片"pic.png".
然后我们依次用下述路径访问,可以看到我们放在www中静态资源.
http://localhost:8080/static/index.html
http://localhost:8080/static/memo.txt
http://localhost:8080/static/pic.png
例04中还有个工程叫Project04ServerRegister.dpr,按照这个工程文件的注释说明,它是为了让 Project04Server.exe在Vista和win7中注册权限,以便可以调用http.sys服务,不然直接编译 Project04Server工程会出现错误,也可以在IDE运行的时候右键选择以管理员运行,这样编译运行的时候就不会出错了.
总的来说,例01-例04还是比较系统地把框架的ORM特性展示的比较明白,而且框架的单元文件中包含了足够的注释说明,可以帮助我们理解作者的意图,甚至在一些汇编函数里还有详细的注释说明其作用.要学习这个框架,对我来说,有点陡升啊,如果是计算机专业的学习估计不会有太大难度,对我来说有点开始迷糊了,后边的学习估计会慢下来,需要先消化一下基本的思路.

浙公网安备 33010602011771号