ctemplate 用于linux下的web开发,可以动态生成一个html网页,这里的 “ 动态 ” 指的是网页的数据不是固定的,可以使用变量来填充网页内容。
目录
1、下载ctemplate
2、安装 ctemplate
3、使用ctemplate库
1、下载ctemplate
可以在gitee上搜索 ctemplate,选择一个下载。gitee下载链接:ctemplate | download
在Linux命令行输入: git clone 复制的链接
2、安装 ctemplate
接下来开始安装,先进入到 ctemplate 目录下
第一步,因为是源码安装,需要手动运行安装程序,输入: ./autogen.sh
第二步,输入:./configure
第三步,输入:make
如果出现了编译报错,大概率是gcc编译器版本过低的问题,可以输入gcc -v查看一下版本,此时需要更新版本。 关于gcc的版本更新,可以参考:gcc | update
第四步:输入:sudo make install
3、使用ctemplate库
现在这个库已经安装到了当前系统中,我们可以在任意 .cc 文件中调用这个库
test.cc
#include <ctemplate/template.h>
#include <string>
#include <iostream>
int main(){
// 形成数据字典
ctemplate::TemplateDictionary dic("test");
dic.SetValue("name", "张三"); // 相当于插入了一个键值对(name会在下面的网页模板中出现)
// 构建空网页模板对象
std::string empty_html = "./test.html"; // 空的网页模板
ctemplate::Template* tp = ctemplate::Template::GetTemplate(empty_html, ctemplate::DO_NOT_STRIP);
// 渲染网页模板(将网页中的变量 name 替换成 "张三")
std::string filled_html;
tp->Expand(&filled_html, &dic);
std::cout << filled_html << std::endl;
return 0;
}
test.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 渲染时,变量name会被替换成对应的值 -->
<h1>{{name}}</h1>
</body>
</html>
编译时,需要添加第三方库的依赖 -lctemplate、-lpthread。因为ctemplate库用到了pthread库
测试结果如下: