OpenWrt Web 开发 LuCI框架 lua语言
2015-06-15 18:04
1416 查看
LuCI作为“FFLuCI”诞生于2008年3月份,目的是为OpenWrt固件从 Whiterussian 到 Kamikaze实现快速配置接口。Lua是一个小巧的脚本语言,很容易嵌入其它语言。轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快,从而适合嵌入在别的程序里。UCI是OpenWrt中为实现所有系统配置的一个统一接口,英文名Unified Configuration Interface,即统一配置接口。LuCI,即是这两个项目的合体,可以实现路由的网页配置界面。
要在路由器上实现路由器的配置页面的开发
就是路由器,后标签贴的,管理路径 一般是 192.168.1.1 或192.168.0.1
要实现一套这样的小项目
项目内容很小,个人有兴趣,所以接了这任务
任何的web开发,只要有搞清楚的request,response,mvc结构,很容易上手。
后端示例代码
要在路由器上实现路由器的配置页面的开发
就是路由器,后标签贴的,管理路径 一般是 192.168.1.1 或192.168.0.1
要实现一套这样的小项目
项目内容很小,个人有兴趣,所以接了这任务
任何的web开发,只要有搞清楚的request,response,mvc结构,很容易上手。
后端示例代码
#!/usr/bin/env lua local json = require "los.json" local util = require "los.util" --配置文件路径 wifiplacedatapath="/etc/testconfig.data" --设置 local function set_placeinfo(data) local str="" util.exec('rm -rf '.. wifiplacedatapath) for k,v in pairs(data) do if k~="act" then util.exec("echo '" .. k .. "|" .. v .. "' >> " .. wifiplacedatapath) end end ngx.print(json.encode({status=0})) end --读取 function getplaceinfo() local bw = io.open(wifiplacedatapath) local wifidata={} if bw then local bwraw = bw:read("*a") local tabs= split(bwraw,"\n") for i=1,#tabs do if tabs[i]~=nil and tabs[i]~='' then local subtabs=split(tabs[i],"|") wifidata[subtabs[1]]=subtabs[2] end end end return wifidata end local function get_placeinfo() local wifidata=getplaceinfo() ngx.print(json.encode(wifidata)) end --路由 local function parser() local args = ngx.req.get_uri_args() if tostring(args.act) == "get" then get_placeinfo() elseif tostring(args.act) == "set" then set_placeinfo(args) end end parser() local function split(str, delimiter) if str==nil or str=='' or delimiter==nil then return nil end local result = {} for match in (str..delimiter):gmatch("(.-)"..delimiter) do table.insert(result, match) end return result end
相关文章推荐
- 转 Lua标准库: table函数, 数学函数, 字符串函数/格式化/配对,
- Lua与C——调用Lua函数(三)
- Lua与C——执行Lua脚本(二)
- Lua时间转换
- Lua与C通信——Lua API(一)
- 【原】lua的table深拷贝
- lua string 库
- Lua 学习笔记三 Mac安装Lua
- Evaluate Reverse Polish Notation
- Lua脚本认知小结
- Incompatibilities with Lua 5.2
- Lua获取系统时间和时间格式化方法
- Lua中的模块与module函数
- lua--函数深入:闭合函数,局部函数,尾调用
- Lua中的字符串操作
- Lua学习 2) —— Android与Lua互调
- lua学习笔记(2)——内核入口
- lua 弱表
- lua学习笔记(1)——编译配置
- [leetcode] Evaluate Reverse Polish Notation