Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33411
  • 博文数量: 8
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 47
  • 用 户 组: 普通用户
  • 注册时间: 2015-04-16 11:55
文章分类

全部博文(8)

文章存档

2021年(1)

2019年(1)

2015年(6)

我的朋友

分类: 网络与安全

2019-12-30 16:38:28

学习Openwrt需要掌握以下知识
1、lua语言
2、html 语言
3、java 语言
4、css
5、js
6、路由器基本知识
7、网络协议

Openwrt中html中的css样式表路径
/www/luci-static/openwrt.org
说明: luci 框架下面的 htm 都是可以嵌入 lua 语句的,做业务处理,相当于 jsp 页面的内部的 Java 语句)

OpenWRTweb总结

目  录

    目  录 1

第1章 Web框架和实现 2

第1节 luci框架 2

第2节 controller下文件(*.lua)的编写 2

第3节 model下文件(*.lua)编写 3

第4节 view下文件(*.htm)编写 4

第2章 web的访问流程 5

第3章 lua学习资料 6

参考资料 7


第1章 Web框架和实现

第1节 luci框架

OpenWRTweb采取的是luci框架,该框架采取了MVC的设计模式。在luci目录下有3个重要的目录:controllermodelview。将前真个htm文件放置在view下、逻辑控制文件放置在controller下、1些映照生成htm的模板放置在model下。

controller目录:将所有用到的“逻辑上的处理”,通过注册“树节点”的方式组织起来。也就是说,将所有的逻辑上的处理,像树的枝叶1样组织起来。

Model:业务上的处理和生产htm的模板。

Viewhtm文件。


网上参考资料:

http://www.cnblogs.com/zmkeil/archive/2013/05/14/3078774.html

http://www.cnblogs.com/zmkeil/archive/2013/05/14/3078766.html


第2节 controller下文件(*.lua)的编写

如第1节所述,controllerluci框架中作用是逻辑上的组织。编码时主要分为两块:

“枝注册”---模块注册

“叶注册”---节点注册

模块注册

如:module("luci.controller.admin.system", package.seeall)

解释:表示在luci/controller/admin/下注册1个system模块


节点注册

1function index()

2entry({"admin", "system", "system"}, cbi("admin_system/system"), _("System"), 1)

3end


1和行3将表示1个函数块

2表示在admin/system模块下注册1个system的节点,节点序列为1cbi(后面讨  论)

备注:行2中的第4个参数序列很重要,它会影响在web上的显示顺序

Entry()函数分析:

参数1:插入的节点名字,如:{adminsystemheyg1},表示在adminsystem中插入节点heyg1

参数2:插入的heyg1节点要做甚么(动作时甚么),通常有下面几种方式:

方式1:template方式,即调该节点会直接调用view下的相应htm文件

方式2:cbi/form方式,会调用model下的相应文件做相应的处理

方式3:call方式,会调用本文件或导入文件的函数

其他方式:

Alias:表示链接到其他某个节点

这里template(heyg/heyg1)会调用view/heyg/heyg1.htm文件

参数3:插入节点在对应位置的名字,在web界面对应菜单中的显示名字

这里_(heyg1),在web的菜单中显示为heyg1

参数4:插入结点的同等级的不同分类,或说是区分同等级下的其他结点的数字代号

这里3,不能和同级别下的其他选项重复

在菜单中级别是从小到大的显示如:system1)、Administration(2)heyg1(3)....

 

Entry()函数的1些属性解析:对插入1个结点,该结点除有相应的名称和处理动作以外,它还有1些相应的属性,我们可以手动的设置它的属性值类似于entry().dependent=false

官方文旦中给出以下属性:

dependent :当该节点的父节点丢失时,将该节点保护起来,不让它被意外调用

leaf:如果该节点下还有其他子节点,解析到该结点时,就不向下继续解析其子节点。

sysauth:在使用该节点时需要1个系统账户验证

I18n:定义了当求页面要求时,哪些文件会自动加载

其他属性(纯属自己猜想,如有不正,多多指教,勿喷):

Index:将该节点作为同级目录下的作为首页,或说默许的第1个页面

 

官网:http://luci.subsignal.org/trac/wiki/Documentation

博客:http://blog.csdn.net/ubuntucc/article/details/41083687

 

 

第3节 model下文件(*.lua)编写


http://blog.chinaunix.net/uid⑵3780428-id⑷367351.html


第4节 view下文件(*.htm)编写

嵌入lua脚本、htmjs多种语句


第2章 web的访问流程


http://blog.chinaunix.net/uid⑵3780428-id⑷367414.html

http://www.cnblogs.com/gnuhpc/archive/2013/08/31/3293643.html web的数据交互


第3章 lua学习资料


英文手册:

中文手册:

lua学习教程:



大多数lua语句分析中出现的函数接口:

http://blog.csdn.net/chinazhd/article/details/7776994


NB的博客和学习文章

http://blog.csdn.net/xoyojank/article/details/12762909

http://xuzhihong1987.blog.163.com/blog/static/26731587201171152614685/


参考资料

LuCI上配置Makefile: 

http://luci.subsignal.org/trac/wiki/Documentation/Modules


CBI: 

http://luci.subsignal.org/trac/wiki/Documentation/CBI


Luci: 

http://luci.subsignal.org/trac/wiki/Documentation/ModulesHowTo


Luci类库的函数定义和使用说明: 


UCI接口: 

http://wiki.openwrt.org/doc/devel/config-scripting


阅读(1690) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~