智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

标题: 《OpenWRT》04:luci和lua介绍与实例应用 [打印本页]

作者: znck007    时间: 2015-9-3 00:42
标题: 《OpenWRT》04:luci和lua介绍与实例应用
Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。UCI是OpenWrt中为实现所有系统配置的一个统一接口,英文名Unified Configuration Interface,即统一配置接口。LuCI,即是这两个项目的合体,目的是为OpenWrt固件从 Whiterussian 到 Kamikaze实现快速配置接口,可以实现路由的网页配置界面。

从上面可以知道,在openwrt我们使用luci实现使用网页就可以配置,这极大的方便了初学的开发人员。

首页html代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="refresh" content="0; URL=/cgi-bin/luci" />
</head>
<body style="background-color: black">
<a style="color: white; text-decoration: none" href="/cgi-bin/luci">LuCI - Lua Configuration Interface</a>
</body>
</html>


跳转执行luci
#!/usr/bin/lua
require "luci.cacheloader"
require "luci.sgi.cgi"
luci.dispatcher.indexcache = "/tmp/luci-indexcache"
luci.sgi.cgi.run()


run方法的主要任务就是在安全的环境中打开开始页面(登录页面),在run中,最主要的功能还是在dispatch.lua中完成。
运行luci之后,就会出现登录界面:

winscp图

luci的精华所在,/usr/lib/lua/luci/下有三个目录model、view、controller,它们对应M、V、C。下面简单介绍生成界面的方法。
Call()方法会调用controller里的函数,主要通过openwrt系统的uci、network、inconfig等工具对系统进行设置,如果需要还会生成新界面。动态生成界面的方法有两种,一是通过cbi()/form()方法,它们利用model中定义的模板map,生成html文件;另一种是通过template()方法,利用view中定义的htm(一种类似html的文件),直接生成界面。
这套系统是很复杂的,但只要定义好了,使用起来就非常方便,增加页面,修改页面某个内容等操作都非常简单。
启动:/etc/init.d/uhttpd start开机自启动:/etc/init.d/uhttpd enable


未完待续...






作者: eegyl    时间: 2015-9-5 11:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: agkkl    时间: 2015-9-9 16:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: ttwpz    时间: 2015-9-30 06:03
我继续顶你!太好的帖子了 支持













作者: qq380540379    时间: 2015-10-12 16:58
赞一个!赞一个!赞一个!
作者: tswtj    时间: 2015-10-30 18:00
提示: 作者被禁止或删除 内容自动屏蔽
作者: tswtj    时间: 2015-11-20 13:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: lonsin    时间: 2015-11-26 22:51
谢谢楼主分享
作者: 706392918    时间: 2015-12-1 19:31
赞赞赞赞赞
作者: Raspberry    时间: 2016-1-13 22:05
小菜鸟刷等级,看教程,学习中
作者: fawob    时间: 2016-2-15 02:00
说的不错!













作者: dpzkm    时间: 2016-3-21 21:28
大家有什么好看法 都说一下吧
作者: nkubf    时间: 2016-4-12 21:12
提示: 作者被禁止或删除 内容自动屏蔽
作者: 场立誉lm3ahvi    时间: 2016-4-26 19:55
关注中!感兴趣的朋友都来说说
作者: mxatp    时间: 2016-5-4 19:51
祝楼主快乐,大家一齐讨论!
作者: liangzhineng    时间: 2016-5-20 13:49
lua貌似很强大啊
作者: fnfbp    时间: 2016-6-10 18:49
我也想了解了解!!!先顶一个













作者: hszrk    时间: 2016-6-25 17:14
很不错的啊













作者: 幼儿一班    时间: 2016-10-3 08:34
谢谢分享
作者: {五洲管道}    时间: 2016-10-9 19:23
提示: 作者被禁止或删除 内容自动屏蔽
作者: 月夜之星642    时间: 2016-10-16 03:43
谢谢哦,辛苦辛苦!













作者: 麦麸点点ny    时间: 2016-10-20 15:37
说的不错!













作者: 毫克里364    时间: 2016-10-24 03:57
说的不错!













作者: xke瓯江帆影    时间: 2016-10-24 04:24
说的不错!













作者: 929377130    时间: 2016-10-27 02:28
只为拿分早日调通111111111111
作者: 讴歌蓝obe    时间: 2016-11-4 04:36
完全支持你,大家都会顶你













作者: 乐享科技mt    时间: 2016-11-5 00:04
很精典,谢谢! 难得的好贴

















欢迎光临 智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想! (http://luntan.znck007.com/) Powered by Discuz! X3.2