OpenWrt Web 開發 LuCI框架 lua語言

LuCI做爲「FFLuCI」誕生於2008年3月份,目的是爲OpenWrt固件從 Whiterussian 到 Kamikaze實現快速配置接口。Lua是一個小巧的腳本語言,很容易嵌入其它語言。輕量級 LUA語言的官方版本只包括一個精簡的核心和最基本的庫。這使得LUA體積小、啓動速度快,從而適合嵌入在別的程序裏。UCI是OpenWrt中爲實現全部系統配置的一個統一接口,英文名Unified Configuration Interface,即統一配置接口。LuCI,便是這兩個項目的合體,能夠實現路由的網頁配置界面。javascript

 

 

要在路由器上實現路由器的配置頁面的開發java

就是路由器,後標籤貼的,管理路徑 通常是 192.168.1.1 或192.168.0.1web

要實現一套這樣的小項目json

 

項目內容很小,我的有興趣,因此接了這任務後端

 

任何的web開發,只要有搞清楚的request,response,mvc結構,很容易上手。mvc

後端示例代碼ui

 

#!/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
相關文章
相關標籤/搜索