openwrt增加自定義網頁

一. 簡介

本文介紹在OpenWRT中使用Luci框架定制設備配置頁面的方法,包括添加靜態頁面和參數配置頁面的過程,以及如何利用lua腳本實現界面與功能的結合。

二. Luci介紹

UCI 是 Openwrt 中為實現所有系統配置的一個統一接口,英文名 Unified Configuration Interface,即統一配置接口。輕量級 LUA 語言的官方版本只包括一個精簡的核心和最基本的庫。這使得 LUA 體積小、啟動速度快,從而適合嵌入在別的程序里。 LuCI 即是這兩個項目的合體,可以實現路由的網頁配置界面。

建議在學習LuCI界面開發之前,先了解下LUA 的相關語法知識。
參考教程https://www.runoob.com/lua/lua-basic-syntax.html

LuCI采用了MVC (模型/視圖/控制)三層架構,在系統的/usr/lib/lua/luci/下有三個目錄 model、 view、 controller, 它們分別對應 M、V、 C。也可以在openwrt源碼/feeds/luci/applications/luci-app-xx/luasrc/ 或 openwrt源碼/feeds/luci/modules/luci-mod-admin-full/luasrc/ 目錄下閱讀官方的源碼例程,學習參考, 我們要做的主要工作就是基于 LuCI 框架編寫LUA 腳本、在 html 頁面中嵌入 LUA 腳本。

三. Openwrt界面開發

添加界面有兩種方式,大同小異:
① 在開發板系統中添加界面方式。
② 在源碼中添加界面方式。

第①種在系統板上修改界面配置文件后,可以馬上在網頁端看到修改效果,不用重新編譯Openwrt源碼和燒寫固件。
優點:開發便捷
缺點:重刷系統后相關文件修改信息丟失。
兩者開發方式就類似于在開發板上掛載NFS開發;第②種適合產品發布。

3.1 在開發板系統中添加界面

按照前面所講的MVC模型,將涉及的三個文件夾列出來:

  1. /usr/lib/lua/luci/controller/*
  2. /usr/lib/lua/luci/view/*
  3. /usr/lib/lua/luci/model/cbi/*

后面我們也將圍繞這三個文件夾進行界面開發。

3.1.1 添加控制controller

進入 /usr/lib/lua/luci/controller/ 目錄下, mkdir myapp 創建myapp/目錄,并在myapp目錄下創建new_tab.lua 文件,在文件中輸入如下內容:

module("luci.controller.myapp.new_tab", package.seeall) 
function index()entry({"admin", "new_tab"}, firstchild(),translate("cfg"), 1).dependent=falseentry({"admin", "new_tab", "sn"}, cbi("myapp-mymodule/gateway_sn"), translate("sn"), 2)entry({

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/93866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/93866.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/93866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

微服務的編程測評系統11-jmeter-redis-競賽列表

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄前言1. 退出登錄1.1 后端1.2 前端2. 獲取當前用戶信息3. C端用戶競賽列表功能3.1 后端3.2 Jmeter-基本操作3.3 數據版本性能測試-壓力測試3.4 redis版本-緩存結構設計…

海濱浴場應急廣播:守護碧海藍天的安全防線

海濱浴場應急廣播:守護碧海藍天的安全防線!海濱浴場,是人們休閑娛樂、親近自然的理想場所。然而,變幻莫測的海洋環境也潛藏著諸多安全隱患,如溺水、離岸流、海蜇蜇傷、極端天氣等。為了有效應對突發事件,保…

華曦達港股IPO觀察丨以創新研發為筆,構建AI Home智慧生活新藍圖

深圳市華曦達科技股份有限公司自創立伊始,便將敏銳的市場洞察與前沿技術追蹤視為生命線。通過構建一支卓越的研發團隊,公司專注于自主核心技術的深耕與積累,以精密的硬件與創新的軟件筑起堅實的技術壁壘。其精心打造的“技術創新-…

構建現代化的Web UI自動化測試框架:從圖片上傳測試實踐說起

構建現代化的Web UI自動化測試框架:從圖片上傳測試實踐說起如何設計一個可維護、可擴展的Web UI自動化測試框架?本文通過一個圖片上傳測試實例,詳細介紹專業測試框架的搭建與實踐。當前測試框架結構 首先,讓我們了解一下當前的測試…

Apache IoTDB:大數據時代時序數據庫選型的技術突圍與實踐指南

摘要:時序數據庫在大數據時代迎來爆發式增長,IoTDB作為Apache頂級開源項目展現出顯著優勢:1. 性能卓越:支持千萬級數據點/秒寫入,18:1高壓縮比,查詢延遲低至500ms;2. 創新架構:采用樹…

2025年8月16日(星期六):雨騎古蓮村游記

清晨,當第一縷微光還未完全驅散夜幕的靜謐,我們這群由校長領銜的騎行愛好者已整裝待發。咖啡節早市尚未開攤,空氣中彌漫著一種期待與寧靜交織的氛圍,仿佛連時間都在為我們即將開啟的旅程而放慢腳步。今天的目標是古蓮村&#xff0…

Pandas數據預處理中缺失值處理

一、缺失值的概念表現形式1.數據庫中常用null表示2.部分編程語言中用NA表示3.可能表現為空字符串(‘’)或特定數值4.在Pandas中統一用NaN表示(來自NumPy庫,NaN、NAN、nan本質一致)NaN的特性1.與任何值都不相等&#xf…

計算機網絡:(十五)TCP擁塞控制與擁塞控制算法深度剖析

> 當網絡變成"堵城",TCP如何化身智能交通指揮家?揭秘百萬級并發背后的流量控制藝術! ### 一、生死攸關:為什么需要擁塞控制? **真實災難案例**:1986年勞倫斯伯克利實驗室網絡大崩潰,因缺乏擁塞控制導致全網癱瘓36小時。TCP擁塞控制由此誕生,核心解決**資…

python中的單下劃線“_”與雙下劃線“__”的使用場景及“左右雙下劃線”(魔術方法:`__xxx__`)

在Python中,單下劃線“_”和雙下劃線“__”的使用場景和含義有顯著區別,主要體現在命名約定和語法 一、單下劃線“_”的使用場景 單下劃線更多是編程約定(而非強制語法),用于傳遞特定的“暗示”,不影響代碼…

我們為什么需要時序數據庫?

引言在當今數據驅動的世界中,時間序列數據正以前所未有的速度增長。從物聯網設備傳感器、金融交易記錄到應用程序性能監控,時間序列數據無處不在。傳統的關系型數據庫在處理這類數據時往往力不從心,這時時序數據庫(Time Series Database, TSD…

python-林粒粒的視頻筆記1

python的方法和函數指什么 可變類型和不可變類型 不可變類型,比如字符串通過方法調用后,字符串本身的值不改變 要改變需要重新賦值才能進行改變 比如可變數據類型類型,調用方法后可以直接改變原列表 因此,可變數據類型需要再重新賦…

CentOS 7的下載與安裝

一 、CentOS 7的下載與安裝 注意: CentOS 7 已于2024年6月30日停止維護! 1、下載 由于 centos 7 已經停止維護,部分鏡像網站移除了對centos 7的支持,這里找到了部分現在還可以使用的鏡像網站 阿里云開源鏡像站:http…

礦物分類系統開發筆記(二):模型訓練[刪除空缺行]

目錄 一、階段銜接與開發目標 二、數據準備 三、模型選擇與訓練 1. 邏輯回歸(LR) 2. 隨機森林(RF) 3. 高斯樸素貝葉斯(GNB) 4. 支持向量機(SVM) 5. AdaBoost 6. XGBoost 四…

通信方式:命名管道

一、命名管道 1. 命名管道的原理 有了匿名管道,理解命名管道就非常簡單了。 對于普通文件而言,兩個進程打開同一個文件,OS是不會將文件加載兩次的,這兩個進程都會指向同一個文件,那么,也就享有同一份 in…

如何將數據庫快速接入大模型實現智能問數,實現chatbi、dataagent,只需短短幾步,不需要配置工作流!

智能問數系統初始化操作流程 一、系統初始化與管理員賬號創建登錄與初始化提示:首次訪問系統登錄頁,若系統未初始化,會彈出 “系統未完成初始化,請初始化管理員賬號” 提示,點擊【去創建】。填寫管理員信息&#xff1a…

告別手寫文檔!Spring Boot API 文檔終極解決方案:SpringDoc OpenAPI

在前后端分離和微服務盛行的今天,API 文檔是團隊協作的“通用語言”。一份清晰、準確、實時同步的文檔,能極大提升開發和聯調效率。然而,手動編寫和維護 API 文檔(如 Word、Markdown 或 Postman)是一場永無止境的噩夢—…

N4200EX是一款全智能超聲波檢測儀產品簡析

N4200EX是一款全智能超聲波檢測儀,適用于石油、石化、天然氣、氣體生產等行業的壓力管路、閥門、設備的各種防爆場合氣體泄漏、真空泄漏、閥門內漏檢測。●本安防爆設計,防爆、防塵、防水、抗摔。●適應惡劣環境,可在-25℃超低溫環境檢測&…

NestJS @Inject 裝飾器入門教程

一、核心概念解析 1.1 依賴注入(DI)的本質 依賴注入是一種設計模式,通過 IoC(控制反轉)容器管理對象生命周期。在 NestJS 中,Injectable() 標記的類會被容器管理,而 Inject() 用于顯式指定依賴項…

網絡地址詳解

子網劃分詳解:從 IP 地址結構到實際應用 在計算機網絡中,子網劃分是一項關鍵的技術,它能幫助我們更高效地管理 IP 地址資源,優化網絡性能。要深入理解子網劃分,首先需要從 IP 地址的基本結構說起。 一、IPv4 地址的基…

吾日三省吾身 | 周反思 8.19

上周一覽總體來說,上個周是一個被項目驅使而險些喪失自主思考能力的危險階段。相比任何有機械化工作經驗的讀者都有類似的體驗,在手上打螺絲的無盡循環中,自己的腦子就會逐漸喪失對自身的感知以及自主思考的能力。而這個負循環一旦開始&#…