神人吧 关注:9,087贴子:34,150
  • 3回复贴,共1

OpenWRT下web框架初尝试之总结

只看楼主收藏回复

来源:程序员人生


IP属地:陕西1楼2016-03-04 10:38回复
    第1章 Web框架和实现
    第1节 luci框架
    OpenWRT的web采取的是luci框架,该框架采取了MVC的设计模式。在luci目录下有3个重要的目录:controller、model、view。将前真个htm文件放置在view下、逻辑控制文件放置在controller下、1些映照生成htm的模板放置在model下。
    controller目录:将所有用到的“逻辑上的处理”,通过注册“树节点”的方式组织起来。也就是说,将所有的逻辑上的处理,像树的枝叶1样组织起来。
    Model:业务上的处理和生产htm的模板。
    View:htm文件。


    星座王
    点亮12星座印记,去领取
    活动截止:2100-01-01
    去徽章馆》
    IP属地:陕西2楼2016-03-04 10:38
    回复
      第2节 controller下文件(*.lua)的编写
      如第1节所述,controller在luci框架中作用是逻辑上的组织。编码时主要分为两块:
      1 “枝注册”---模块注册
      2 “叶注册”---节点注册
      1 模块注册
      如:module("luci.controller.admin.system", package.seeall)
      解释:表示在luci/controller/admin/下注册1个system模块
      2 节点注册
      行1:function index()
      行2:entry({"admin", "system", "system"}, cbi("admin_system/system"), _("System"), 1)
      行3:end
      行1和行3将表示1个函数块
      行2:表示在admin/system模块下注册1个system的节点,节点序列为1,cbi(后面讨 论)
      备注:行2中的第4个参数序列很重要,它会影响在web上的显示顺序
      Entry()函数分析:
      参数1:插入的节点名字,如:{“admin”, “system”, “heyg1”},表示在admin下system中插入节点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,不能和同级别下的其他选项重复
      在菜单中级别是从小到大的显示如:system(1)、Administration(2)、heyg1(3)....
      Entry()函数的1些属性解析:对插入1个结点,该结点除有相应的名称和处理动作以外,它还有1些相应的属性,我们可以手动的设置它的属性值类似于entry().dependent=false
      官方文旦中给出以下属性:
      dependent :当该节点的父节点丢失时,将该节点保护起来,不让它被意外调用
      leaf:如果该节点下还有其他子节点,解析到该结点时,就不向下继续解析其子节点。
      sysauth:在使用该节点时需要1个系统账户验证
      I18n:定义了当求页面要求时,哪些文件会自动加载
      其他属性(纯属自己猜想,如有不正,多多指教,勿喷):
      Index:将该节点作为同级目录下的作为首页,或说默许的第1个页面


      星座王
      点亮12星座印记,去领取
      活动截止:2100-01-01
      去徽章馆》
      IP属地:陕西3楼2016-03-04 10:39
      回复
        http://www.wfuyu.com/htmlcss/21058.html


        星座王
        点亮12星座印记,去领取
        活动截止:2100-01-01
        去徽章馆》
        IP属地:陕西4楼2016-03-04 10:39
        回复