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. 关于已部署的WCF服务升级的问题

    在日常的开发过程中,我们会经常迭代发布不同的版本,所以WCF服务的接口也会经常处于变动的状态,比如在传递实体类中新加一个字段.修改参数名称等等关于服务升级的问题.但是我们不可能让已发布的版本重新引用新 ...

  2. c#中语句的先后顺序对结果的影响

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test ...

  3. == 和equal的区别?-005

    1,== 和equal的区别? ==比较两个值是否相等,equal比较对对象的引用是否一致 举例: int a = 2; int b = 2; System.err.println(a == b);/ ...

  4. 【】Python】异常处理try...except、raise

    一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: 1 2 3 4 a=10 b= ...

  5. intelliJ IDEA最常用的快捷键

    一.使用相关快捷键 1.重写接口实现类:Ctrl+I 2.搜索:Shift+Shift   3.生成get或set方法快捷键:Alt+insert: 4.导入未实现的方法,强制类型转换:Alt+Ent ...

  6. 【bzoj1593】[Usaco2008 Feb]Hotel 旅馆 线段树区间合并

    题目描述 奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光.作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿.这个巨大的旅馆一共有N (1 <= N & ...

  7. 【题解】CF#285 E-Positions in Permutations

    挺有收获的一道题ヾ(◍°∇°◍)ノ゙ 恰好为 m ,这个限制仿佛不是很好处理.一般而言,我所了解的恰好为 k 的条件,不是用组合数 / dp状态转移 / 斜率二分就只剩下容斥了.我们可以先处理出 nu ...

  8. [洛谷P4345][SHOI2015]超能粒子炮·改

    题目大意:给你$n,k$,求:$$\sum\limits_{i=0}^k\binom n i\pmod{2333}$$题解:令$p=2333,f(n,k)\equiv\sum\limits_{i=0} ...

  9. Unity游戏开发技术的最佳实践

    活动详情   作为全球规模最大的Unity开发者聚会,历年的Unite大会都成为开发者们获取Unity最新技术知识,交流开发经验,把握行业发展脉搏,体验全球前沿科技与高品质Made with Unit ...

  10. BZOJ4200 & 洛谷2304 & UOJ132:[NOI2015]小园丁与老司机——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4200 https://www.luogu.org/problemnew/show/P2304 ht ...