Delphi 12.2引入了WebStencils,这是一种基于脚本的方法,用于处理类似于ASP.NET Razor Technology的文本。它的主要用途是从WebBroker Server应用程序中生成动态HTML,但可以通过其他方式使用来生成XML,JSON或从模板中生成任何类型的文本输出。
该存储库包含几个非常简单的Delphi 12.2 WebBroker应用程序(作为Windows VCL程序运行,启动Web浏览器),以比较用TPageProducer组件中使用的HTML式标签制成的模板,以及新的TWebStencilsProcessor Components”中使用的新的“@”符号。所有项目和HTML文件都位于一个文件夹中,两个项目共享一个数据模块,用于访问Chinook SQLite数据库(不包括)。
每个应用程序中有五页,看起来相同,因此您可以专注于模板技术:
这两个项目引用的HTML文件被命名为清楚他们使用的哪个项目/技术:
传统的PageProducer模板HTML文件:
index-wbroker.htmlloginfailed-wbroker.htmlcustlist-wbroker.htmlcustedit-wbroker.htmlaccessdenied-wbroker.html新的Webscencer模板HTML文件:
index-wStencils.htmllogin-failed-wStencils.htmlcustlist-wStencils.htmlcustedit-wStencils.htmlaccessdenied-wStencils.htmlcustlistframework1.html请注意,WebStencils集合中还有另一个文件,它是从WebStencils Action生成的每个网页的框架模板,并从传统网络代理项目中使用的页面生产商中的标题和页脚字符串组合在一起。
在尝试编译或运行之前,应下载Chinook示例数据库。这是一个流行的数据库,用于教程和演示,可以在许多不同的地方找到。我使用DBEAVER,这是一个免费的数据库工具,并发现它与此相关。
将chinook.db与项目同一文件夹中的Chinook.db之后,您需要打开数据模块(两个项目使用), udmCust ,并修改TFDConnection组件以指定数据库文件的位置。我还建议使用数据库工具或Delphi的数据资源管理器查看数据库中的表。
Delphi 12.2用于创建和测试这些程序(不使用第三方组件)。
这两个演示都是作为Web Server Windows GUI程序创建的,这意味着它们以一个小的Windows VCL程序运行,该程序打开一个端口,以使用按钮启动您的默认Web浏览器来收听Web请求。 PageProducer版本在端口8081上听,WebStencils版本在端口8082上听,因此您可以同时运行,如果需要。
列出的第一页是登录页面。必须输入有效的登录名,然后才能将您带到客户列表。有效的登录是员工表中的任何用户:
FirstName案不敏感的名称;EmployeeId和LastName的串联,案例敏感。例如,我下载的示例数据库中的第一个条目具有以下第一位员工:
ID :1FirstName :AndrewLastName :亚当斯因此,与该员工登录:
ANDREW (上或下箱)1Adams (确切)登录后,显示了客户列表。每个客户的ID(最左列列)是一个链接,它将您进入“编辑”屏幕,该屏幕列出了编辑框中的所有客户字段。提交按钮除了将您带回客户列表外,不能保存更改或做任何其他操作。
我使用了两个不同的“ Chinook”示例数据库,一个具有单数桌名(例如“客户”和“员工”),而另一个具有复数(例如“客户s ”和“雇员S ”);如果您得到的一个与此存储库中的一个不同,则只需更改表名和查询以匹配即可。
客户列表是使用旧的HTML表标签( <table> , <tr> , <td>等)构建的,因为这是使用TDataSetTableProducer组件构建的旧WebBroker Server应用程序的简单和默认方法。新的WebStencil版本构建了相同的HTML结果,因此您可以比较它的完成方式,并且结果网页几乎相同。现代网站通常构建CSS风格的桌子,这是可以通过从DataSettable Producers切换到WebScence来实现的好处。
阅读我的“介绍Webscenters”博客,以了解有关这些程序背后的技术以及为什么WebStenciles很酷的信息!