class FaultyInfoHandler(tornado.web.RequestHandler):
def get(self):
import xmlrpc.client
s = xmlrpc.client.ServerProxy(LocalRpcSvcAddr)
info = s.faultyinfo()
self.render("faultyinfo.htm", lists=info) def post(self):
import xmlrpc.client
s = xmlrpc.client.ServerProxy(LocalRpcSvcAddr)
event_id = self.get_argument('event_id', '')
if event_id :
evid = event_id.split()
num_evid = len(evid)
for i in range(num_evid):
t = s.faultyrepair(evid[i])
if t[0] == 0:
flag = True
else:
flag = False
message = '操作失败' + ':' + t[1]
break
if flag:
message = '操作成功!'
self.write("<script language=javascript> alert('%s');</script>" % message)
info = s.faultyinfo()
info_num = len(info)
if info_num > 0:
self.write('<META HTTP-EQUIV=REFRESH CONTENT=0;'
'URL=/View/faultyinfo>')
else:
self.write("<script language=javascript> top.location='/';"
"</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中使用如下面代码所示:

 <html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
<head><title></title>
<link href="/css/base.css" type="text/css" rel="stylesheet">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" content="no-cache">
</head> <script language=javascript>
function IdentifyRepair(event_id)
{
var form_info = document.getElementById("form_info");
form_info.method = "post";
form_info.action = "/View/faultyinfo?event_id=" + event_id;
form_info.submit();
} function GetEventId()
{
var form_info = document.getElementById("form_info");
var evid_list = document.getElementsByName("evid_list");
var evid_info = "";
for(var j=0; j<evid_list.length; j++)
{
evid_info += evid_list[j].value + " ";
} form_info.method = "post";
form_info.action = "/View/faultyinfo?event_id=" + evid_info;
form_info.submit();
}
</script> <body> <table class=title width=700>
<tr>
<td><b>故障信息</b></td>
<td style="font-size:12px;color:#185A73" align=right width=*>{% module Uptime() %}</td>
</tr>
</table> <br>
{% if lists != [] %}
<input type="button" onclick="GetEventId()" value="修复全部">
{% end %}
<br>
{% for d in lists %}
<form id="form_info" name="form_info">
<table width=900 border=0 cellspacing=1 cellpadding=1>
<tr id=tblhdr height=22>
<td width=200 align=center>TIME</td>
<td width=300 align=center>EVENT_ID</td>
<td width=150 align=center>MSG_ID</td>
<td width=150 align=center>SEVERITY</td>
<td align=center>
{% if d['event_id'] %}
<a style="color:#0000ff"
href="javascript:IdentifyRepair('{{d['event_id']}}')">修复</a>
{% end %}
</td>
</tr> <tr id=row0>
<td align=center>{{ d['time'] }}</td>
<td align=center>{{ d['event_id'] }}</td>
<td align=center>{{ d['msg_id'] }}</td>
<td align=center>{{ d['severity'] }}</td>
<input name="evid_list" type="hidden" value={{ d['event_id'] }} /> </tr>
<tr>
<table width=900 >
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Product_sn</td>
<td width=780 align=left>{{ d['product_sn'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left >Fault class</td>
<td width=780 align=left>{{ d['faulty_class'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Affects</td>
<td width=780 align=left>{{ d['affects'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Problem in</td>
<td width=780 align=left>{{ d['problem_in'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>FRU</td>
<td width=780 align=left>{{ d['fru'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Serial ID</td>
<td width=780 align=left>{{ d['serial_id'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Description</td>
<td width=780 align=left>{{ d['description'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Response</td>
<td width=780 align=left>{{ d['response'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Impact</td>
<td width=780 align=left>{{ d['impact'] }}</td>
</tr>
<tr id=row1>
<td width=20 ></td>
<td width=100 align=left>Action</td>
<td width=780 align=left>{{ d['action'] }}</td>
</tr>
</table>
</tr>
</table>
</form>
<br>
{% end %}
</body>
</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>")

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

Webview 中FaultyInfo代码说明的更多相关文章

  1. IOS网络第七天WebView-03js中调用webView中的代码

    *********** #import "HMViewController.h" @interface HMViewController () <UIWebViewDeleg ...

  2. Android WebView中的JavaScript代码使用

    在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...

  3. Android中WebView的JavaScript代码和本地代码交互的三种方式

    一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...

  4. android:如何通过chrome远程调试APP中的webView的h5代码

    今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...

  5. UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv

    原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) ...

  6. 混合开发 webview 中file 控件 点击后无反应解决方法

    最近在做个项目 ,需要 使用 file 控件上传 图片到服务器 ,在手机浏览器中 可以正常选择照片,但是放到 android 应用中的webview中,file 控件点击后就没有反应. 百度了一番后, ...

  7. iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ

    iOS之在webView中引入本地html,image,js,css文件的方法   2014-12-08 20:00:16CSDN-sky_2016-点击数:10292     项目需求 最近开发的项 ...

  8. Android安全开发之WebView中的地雷

    Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...

  9. demo工程的清单文件及activity中api代码简单示例

    第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...

随机推荐

  1. HDU 1995 R-汉诺塔V

    https://vjudge.net/contest/67836#problem/R 用1,2,...,n表示n个盘子,称为1号盘,2号盘,....号数大盘子就大.经典的汉诺塔问 题经常作为一个递归的 ...

  2. do_try_to_free_pages

    /* * This is the main entry point to direct page reclaim. * * If a full scan of the inactive list fa ...

  3. RT-thread内核之信号量

    一.信号量控制块:在include/rtdef.h中 #ifdef RT_USING_SEMAPHORE /** * Semaphore structure */ struct rt_semaphor ...

  4. BZOJ 2337 XOR和路径(概率DP)

    求点1到点n经过的路径权值异或和的期望. 考虑按位计算,对于每一位来说,令dp[i]表示从i到n的异或和期望值. 那么dp[i]=sum(dp[j]+1-dp[k]).如果w(i,j)这一位为0,如果 ...

  5. cf Round 587

    A.Duff and Weight Lifting(思维) 显然题目中只有一种情况可以合并 2^a+2^a=2^(a+1).我们把给出的mi排序一下,模拟合并操作即可. # include <c ...

  6. 【BZOJ3240】【NOI2013】矩阵游戏(数论)

    [BZOJ3240][NOI2013]矩阵游戏(数论) 题面 BZOJ 题解 搞什么矩阵十进制快速幂加卡常? 直接数学推导不好吗? 首先观察如何从每一行的第一个推到最后一个 \(f[i]=a·f[i- ...

  7. CF449C:Jzzhu and Apples——题解

    https://vjudge.net/problem/CodeForces-449C 题目大意:1-n编号的苹果两两一对,他们的最大公约数不为1,求这些对的最大匹配. ———————————————— ...

  8. 背景建模技术(五):视频捕获(VideoCapture)模块

    本次对“视频捕获(VideoCapture)模块”做出分析,给出源代码和对应的程序流程框架. 视频捕获模块的主要功能是设置视频或相机参数,并读取设置配置参数,最后进入帧处理模块的process进程,该 ...

  9. iOS中产生随机数的方法

    利用arc4random_uniform()产生随机数 Objective-C 中有个arc4random()函数用来生成随机数且不需要种子,但是这个函数生成的随机数范围比较大,需要用取模的算法对随机 ...

  10. Codeforces Round #326 (Div. 2) B Duff in Love 简单数论 姿势涨

    B. Duff in Love time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...