介绍
http://keplerproject.github.io/orbit/
Orbit是lua语言版本的MVC框架。
此框架完全抛弃CGILUA的脚本模型, 支持的应用, 每个应用可以卸载一个单独的文件中,当然你也可以将它拆为一个文件, 当你需要时候。
此框架运行在WSAPI协议的服务器上,所以可以工作在 Xavante和一些CGI和fastcgi程序上。
安装运行
http://keplerproject.github.io/orbit/example.html
此程序依赖 sqlite。
安装:
luarocks search sql
apt-get install sqlite3
luarocks install luasql-sqlite3 SQLITE_DIR=/usr/local
运行
使用firefox sqlite插件, 查看db
APP接口
使用orbit.new则构造了一个APP环境, 此环境可以引用全局变量,
同时还定义了 blog应用继承了 orbit项目的接口, 例如路由的get接口 dispatch_get
Creating Models
模型角色负责从数据库中查询数据, 后者新建和修改数据。
Defining Controllers
对于请求的URL,执行访问什么数据, 怎么响应。 访问数据调用model对象, 响应内容可以是html, 也可以是 xml json等。
GET请求一个URL,调用模型获取数据
POST修改数据, 调用模型,保存数据 。
Views: Generating HTML
视图定义的一个简单函数, 在函数中生成视图内容,例如HTML。
可以直接从控制器中返回,渲染的内容, 但是这里还是建议分离控制器和视图,这是一个好的编程实践。
你可使用concat将字符串拼接为视图结果, 也可以使用一个第三方的模板库, 将从model中获取的数据, 使用模板引擎渲染到模板中。
orbit提供了使用的 HTML和XML生成器 orbit.htmlify, 但是你也可以自由选择其它的你想用的方法。
orbit.htmlify
cosmo后台模板引擎
MVC架构中一直提到数据和视图分离,
如果使用orbit.htmlify模式, 则只能写出符合DOM结构化的lua代码, 对于前端代码如果能用HTML方式书写,类似JSP格式, 也比orbit提供的这种方式好维护, 前端更加方便定制。
看看lua的后台模板引擎