查看: 4697|回复: 7

Openwrt开发之luci

[复制链接]
  • TA的每日心情

    2017-11-2 11:47
  • 签到天数: 105 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2015-9-2 09:00:37 | 显示全部楼层 |阅读模式
    分享到:

    前提:
    需要懂一点点WEB开发技术,和lua,不懂得没关系,我的附件里有自己收藏的lua教程,可以看看

    大部分路由器的提供了
    web 配置方式,openwrt也不例外,有了web 界面就可以简单配置有关路由器的一些参数了,比如ip 地址,无线参数等,而且如果做自己的应用的话web 界面也少不了。Openwrt提供了两种web 界面,luciwebif,这两种界面各有千秋。Luci是官方提供的标准界面,webif是第三方开发的界面。他们有一个共同点是他们都是脚本,解释性语言。这就为他们的扩张提供了方便。

    1Luci编译:

    首先介绍luci 的编译,luci的编译比较简单。首先进入openwrt 的配置界面,进入luci 的界面选择页面,进入luci->Collections 界面,选中luci,这样基本的luci 界面就选中了,然后保存退出,编译即可,编译参考前面编译的帖子,这样编译出的固件即具有了luci 界面, 3.jpg
    *


    2Luciweb的一些介绍:

    luci 包括两部分内容,它是由lua uci 合并起来的,lua是一种执行效率非常高的解释型语言,uci是配置openwrt 的默认工具,web,任何一个web界面都包括两部分内容,即运行webweb服务器,还有那些写界面的界面语言,openwrtweb 服务器默认采用uhttpd,端口80web的界面语言就是上面介绍的luci咯,

    3Luci页面编辑:

    Luci的用户界面目录在/user/lib/lua/luci下面,额外说明,luci是基于MVC架构的哟,熟悉WEB开发的,比如.net或者JAVA springMVC,又或者会做struts2,hibernate,spring的基本秒分钟拿下这个知识点,不是做WEB开发的,或者没有接触过的,就看下我的介绍吧,熟悉的跳过咯,/usr/lib/lua/luci/下有三个目录modelviewcontroller,他们就对应MVC中的M VC,面简单介绍生成界面的方法。其中M 是已经生成的web 控件,其实这里就是写好的lua脚本,V是给外部提供的一些web 界面,C控制其V M 的显示方式,现在就进入controller 看看他的内容,其实它的入口地址在controlleradmin 目录下面,里面的各个lua 文件就是各个入口,比如system.lua 就对应的主界面的system 栏下面,咱们现在希望在system 栏中增加一个自定义的界面,这里为了方面描述只显示helloworld。每个功能界面的入口地址为对应的lua 文件中entry 功能函数,entry功能函数的原型为

    entry(path, target, title=nil,order=nil)


    前面两个参数是必须的,后面两个是可选的。Path形如(adminsystemreboot),entry 根据这些属性创建节点,比如上面内容代表在system 标签中的reboot 页面,target是这里的重点,它描述了当用户调用这个界面所执行的行为。这里主要由三种行为,calltemplatecbi,其中 call为调用文件中的功能函数,template为调用view 中的html 界面,cbi为调用mode 中的lua 文件。Title是在页面中显示的内容,

    order 是显示的顺序,顺序越小显示内容越靠前。

    下面在system.lua 中增加一条

    entry({"admin","system", "helloworld"},template("admin_system/helloworld"), _("helloworld

    "), 99)


    其中第一个参数代表一个节点,第二个参数,调用view/admin_system/helloworld.htm 文件,第三个参数为显示的名字,第四个参数为显示顺序,这里在最后显示,其中helloworld.htm 文件的内容如下:

    %+footer%>

    <h1><%:HelloWorld%></h1>

    <%+footer%>

    执行完之后可以看下界面的显示,



    4.jpg



    可以看到system 下面有helloworld的选项
    C和C 程序员的Lua快速入门.pdf (204.17 KB, 下载次数: 61)
    回复

    使用道具 举报

  • TA的每日心情

    2017-11-2 11:47
  • 签到天数: 105 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2015-9-2 09:05:02 | 显示全部楼层
    QQ图片20150902090345.png
    压缩了 都传不上来了。。。需要的自己百度下,或者群里@我发你
    *












    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-3-23 12:01
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-9-2 09:30:17 | 显示全部楼层
    nill 发表于 2015-9-2 09:05
    压缩了 都传不上来了。。。需要的自己百度下,或者群里@我发你
    *

    用分卷模式传吧
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2017-3-23 12:01
  • 签到天数: 7 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    发表于 2015-9-2 09:30:49 | 显示全部楼层
    lua语言还是不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-2 11:47
  • 签到天数: 105 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2015-9-2 09:42:01 | 显示全部楼层
    魅影-2023106 发表于 2015-9-2 09:30
    用分卷模式传吧

    我传群里咯,,,需要看下哦
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2017-11-2 11:47
  • 签到天数: 105 天

    连续签到: 1 天

    [LV.6]常住居民II

     楼主| 发表于 2015-9-2 09:42:31 | 显示全部楼层
    魅影-2023106 发表于 2015-9-2 09:30
    lua语言还是不错

    嗯嗯,我接触她还是在做游戏的时候
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2016-10-17 12:07
  • 签到天数: 306 天

    连续签到: 1 天

    [LV.8]以坛为家I

    发表于 2015-9-3 09:27:47 | 显示全部楼层
    感谢分享。。。
    其实我并不了解这个,,拿来学习一下下,,
    感谢楼主
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-10-13 10:27
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-10-23 23:18:52 | 显示全部楼层
    这个不错,可以去设计自己的luci界面
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-29 18:25 , Processed in 0.179468 second(s), 30 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.