openresty blog demo
目的:新手快速入门openresty开发 本demo有借鉴: https://git.oschina.net/love_linger/OmniWeb 可惜本人未能联系上作者;
好了,进入正题
Tiny
|++ app 应用目录
| |++ controllers 控制器
| |++ models 模型
| |++ views 视图
| |++ boot 引导执行时初始化, 如验证登陆
| |++ common 公共配置文件
| |-- config.lua 应用配置,默认加载到全局就是_CONF中
| |++ public 入口文件目录
| |----+ css
| |----+ js
| |----+ upload
| |----+ index.lua 单入口
|
|++ core 框架核心
| |++ vendor 插件库
| |-- tiny.lua 预加载文件列表及开始执行
| |-- common.lua 内置的常用函数
| |-- controller.lua controller基类
| |-- cookie.lua cookie的实现
| |-- error.lua 默认的错误处理
| |-- model.lua model层的实现
| |-- router.lua 不是路由的路由
| |-- template.lua 导入lua-resty-template库
|
++++++++++ +++++ +++++ +++++ +++++ 控制器方法 +++++ +++++ +++++ +++++ +++++ +++++ +++++ +++++
function index:index()
_GET = ngx.req.get_uri_args(); --接收get参数
local page = vendor("page"); --加载分页库 .
local m = model.__get("article");--加载模型 .
local countNum = tonumber(m:count({})); --总条数
local res ={};
local pageres ={}
if countNum > 0 then
pageres = page:get(countNum, 15, _GET['page']); --调用分页
res = m:getall({}, pageres['limit']); --得到limit分页值
end
self.assign('list', res); --结果传入到view
self.assign('page', pageres);--分页传入到view
self.assign('title', "首页"); --传入
self.render('zh_cn/index/main.html'); --渲染模板
end
return index;
++++++++++ +++++ +++++ +++++ +++++ 模型 +++++ +++++ +++++ +++++ +++++ 1.创建模型 Tiny/app/models/article.lua
function article:getall(where, limit)
local str = "";
if where['category_id'] and #(where['category_id']) > 0 then
str = str .. ' category_id IN ( ';
for k, v in pairs(where['category_id']) do
str = str .. v .. ',';
end
str = string.sub(str, 1, -2);
str = str .. ') ';
end
if string.len(str) >= 3 then
str = " WHERE " .. str;
end
if limit then
limit = " ORDER BY id DESC LIMIT " .. limit;
end
local sql = 'SELECT * FROM ' .. self.table .. str .. limit;
-- dump(sql);
local res, err, errno, sqlstate = self.mysql(sql);
return res;
end
return article;
+++++ +++++ +++++ +++++ +++++ 视图 +++++ +++++ +++++ +++++ +++++ +++++ 1.创建模型 Tiny/app/view/article.lua
+++++ Cookie 1.查看 Tiny/app/boot/init.lua
+++++++++++++++++++加载扩展库 local aes = vendor("aes"); --加载aes扩展库 返回的是table
+++++ ++++++++++ 初始化 框架最先加载 Tiny/app/boot/init.lua 文件中的init方法
[root@www webbench-1.5]# webbench -c 500 -t 60 http://www.im.cn/index/index Webbench - Simple Web Benchmark 1.5 Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://www.im.cn/index/index 500 clients, running 60 sec.
Speed=435480 pages/min, 1714964 bytes/sec. Requests: 435326 susceed, 154 failed.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。