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特性展示的比较明白,而且框架的单元文件中包含了足够的注释说明,可以帮助我们理解作者的意图,甚至在一些汇编函数里还有详细的注释说明其作用.要学习这个框架,对我来说,有点陡升啊,如果是计算机专业的学习估计不会有太大难度,对我来说有点开始迷糊了,后边的学习估计会慢下来,需要先消化一下基本的思路.

posted @ 2020-11-27 11:20  dqi1999  阅读(194)  评论(0)    收藏  举报