zoukankan      html  css  js  c++  java
  • Webview 中FaultyInfo代码说明

     1 class FaultyInfoHandler(tornado.web.RequestHandler):
     2     def get(self):
     3         import xmlrpc.client
     4         s = xmlrpc.client.ServerProxy(LocalRpcSvcAddr)
     5         info = s.faultyinfo()
     6         self.render("faultyinfo.htm", lists=info)
     7 
     8     def post(self):
     9         import xmlrpc.client
    10         s = xmlrpc.client.ServerProxy(LocalRpcSvcAddr)
    11         event_id = self.get_argument('event_id', '') 
    12         if event_id :
    13             evid = event_id.split()
    14             num_evid = len(evid)
    15             for i in range(num_evid):
    16                 t = s.faultyrepair(evid[i])
    17                 if t[0] == 0:
    18                     flag = True
    19                 else:
    20                     flag = False
    21                     message = '操作失败' + ':' + t[1]
    22                     break
    23             if flag:    
    24                 message = '操作成功!'
    25             self.write("<script language=javascript> alert('%s');</script>" % message)
    26         info = s.faultyinfo()
    27         info_num = len(info)
    28         if info_num > 0:
    29             self.write('<META HTTP-EQUIV=REFRESH CONTENT=0;'
    30                     'URL=/View/faultyinfo>')
    31         else:
    32             self.write("<script language=javascript> top.location='/';"
    33             "</script>")

    (r"/View/faultyinfo", FaultyInfoHandler) #打开/View/faultyinfo页面,执行FaultyInfoHandler

    分析:

    1.class FaultyInfoHandler(tornado.web.RequestHandler):

    --FaultyInfoHandler继承tornado.web.RequestHandler

    2.def get(self):

    --self 指的是FaultyInfoHandler(PS:我是这么认为的,有待确认)

     def get(self) 指重新定义get方法,像get、post这类方法原本在tornado.web.RequestHandler是存在的,这里是重定义

       self.render("faultyinfo.htm", lists=info) 中render方法在FaultyInfoHandler没有重定义,所以用的是继承于tornado.web.RequestHandler定义的render方法

    3.def post(self):

    --重新定义post方法,加载页面时,默认调用的是FaultyInfoHandler中的get方法,在htm中采用form表单指定post方法时才会调用post方法,htm中使用如下面代码所示:

      1 <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
      2 <head><title></title>
      3 <link href="/css/base.css" type="text/css" rel="stylesheet">
      4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      5 <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
      6 <META HTTP-EQUIV="Cache-Control" content="no-cache">
      7 </head>
      8 
      9 <script language=javascript>
     10 function IdentifyRepair(event_id)
     11 {
     12     var form_info = document.getElementById("form_info");
     13     form_info.method = "post";
     14     form_info.action = "/View/faultyinfo?event_id=" + event_id;
     15     form_info.submit();
     16 }
     17 
     18 function GetEventId()
     19 {
     20     var form_info = document.getElementById("form_info");
     21     var evid_list = document.getElementsByName("evid_list");
     22     var evid_info = "";
     23     for(var j=0; j<evid_list.length; j++)
     24     {
     25         evid_info += evid_list[j].value + " ";
     26     }
     27 
     28     form_info.method = "post";
     29     form_info.action = "/View/faultyinfo?event_id=" + evid_info;
     30     form_info.submit();
     31 }
     32 </script>
     33 
     34 <body>
     35 
     36 <table class=title width=700>
     37     <tr>
     38         <td><b>故障信息</b></td>
     39         <td style="font-size:12px;color:#185A73" align=right width=*>{% module Uptime() %}</td>
     40     </tr>
     41 </table>
     42 
     43 <br>
     44 {% if lists != [] %}
     45     <input type="button" onclick="GetEventId()" value="修复全部">
     46 {% end %}
     47 <br>
     48 {% for d in lists %}
     49 <form id="form_info" name="form_info">
     50 <table width=900 border=0 cellspacing=1 cellpadding=1>
     51     <tr id=tblhdr height=22>
     52         <td width=200 align=center>TIME</td>
     53         <td width=300 align=center>EVENT_ID</td>
     54         <td width=150 align=center>MSG_ID</td>
     55         <td width=150 align=center>SEVERITY</td>
     56         <td align=center>
     57             {% if d['event_id'] %}
     58                 <a style="color:#0000ff" 
     59                 href="javascript:IdentifyRepair('{{d['event_id']}}')">修复</a>
     60             {% end %}
     61         </td>
     62     </tr>
     63 
     64     <tr id=row0>
     65         <td align=center>{{ d['time'] }}</td>
     66         <td align=center>{{ d['event_id'] }}</td>
     67         <td align=center>{{ d['msg_id'] }}</td>
     68         <td align=center>{{ d['severity'] }}</td>
     69         <input name="evid_list" type="hidden" value={{ d['event_id'] }} />
     70     
     71     </tr>
     72     <tr> 
     73     <table width=900 >
     74         <tr id=row1>
     75             <td width=20 ></td>
     76             <td width=100 align=left>Product_sn</td>
     77             <td width=780 align=left>{{ d['product_sn'] }}</td>
     78         </tr>
     79         <tr id=row1>
     80             <td width=20 ></td>
     81             <td width=100 align=left >Fault class</td>
     82             <td width=780 align=left>{{ d['faulty_class'] }}</td>
     83         </tr>
     84         <tr id=row1>
     85             <td width=20 ></td>
     86             <td width=100 align=left>Affects</td>
     87             <td width=780 align=left>{{ d['affects'] }}</td>
     88         </tr>
     89         <tr id=row1>
     90             <td width=20 ></td>
     91             <td width=100 align=left>Problem in</td>
     92             <td width=780 align=left>{{ d['problem_in'] }}</td>
     93         </tr>
     94         <tr id=row1>
     95             <td width=20 ></td>
     96             <td width=100 align=left>FRU</td>
     97             <td width=780 align=left>{{ d['fru'] }}</td>
     98         </tr>
     99         <tr id=row1>
    100             <td width=20 ></td>
    101             <td width=100 align=left>Serial ID</td>
    102             <td width=780 align=left>{{ d['serial_id'] }}</td>
    103         </tr>
    104         <tr id=row1>
    105             <td width=20 ></td>
    106             <td width=100 align=left>Description</td>
    107             <td width=780 align=left>{{ d['description'] }}</td>
    108         </tr>
    109         <tr id=row1>
    110             <td width=20 ></td>
    111             <td width=100 align=left>Response</td>
    112             <td width=780 align=left>{{ d['response'] }}</td>
    113         </tr>
    114         <tr id=row1>
    115             <td width=20 ></td>
    116             <td width=100 align=left>Impact</td>
    117             <td width=780 align=left>{{ d['impact'] }}</td>
    118         </tr>
    119         <tr id=row1>
    120             <td width=20 ></td>
    121             <td width=100 align=left>Action</td>
    122             <td width=780 align=left>{{ d['action'] }}</td>
    123         </tr>
    124     </table>
    125     </tr>
    126 </table>
    127 </form>
    128 <br>
    129 {% end %}
    130 </body>
    131 </html>

    通过表单的方法:form_info.method  form_info.action  form_info.submit

    4.self.write('<META HTTP-EQUIV=REFRESH CONTENT=0;URL=/View/faultyinfo>')

    --重新加载/View/faultyinfo页面

    5.self.write("<script language=javascript> top.location='/';</script>")

    --重新加载整个页面(缺少说明!!!)

  • 相关阅读:
    使用两个路由器扩展家庭无线网络
    RX(Reactive Extinsion)和IX(Interactive Extinsion)库改名了
    WPF绘制矢量图形模糊的问题
    WPF的二维绘图(二)——几何图形Geometry
    一个C#语法高亮插件
    WPF的二维绘图(一)——DrawingContext
    在.net桌面程序中自定义鼠标光标
    在WebAPI中自动创建Controller
    解决OneNote的无法同步的问题
    使用NuGet Package Project快速制作NuGet包
  • 原文地址:https://www.cnblogs.com/fendou-999/p/3821095.html
Copyright © 2011-2022 走看看