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. python爬虫-使用xpath方法

    #coding=utf-8 import re from lxml import etree import requests response = requests.get("http:// ...

  2. input 输入框不能点 readonly , disabled

    只读 readonly="readonly" 不可用 disabled="disabled" 背景变 灰色

  3. codeforces 985 E. Pencils and Boxes (dp 树状数组)

    E. Pencils and Boxes time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  4. 【bzoj2100】[Usaco2010 Dec]Apple Delivery 最短路

    题目描述 Bessie has two crisp red apples to deliver to two of her friends in the herd. Of course, she tr ...

  5. [洛谷P3181][HAOI2016]找相同字符

    题目大意:给你两个字符串,求从两个字符串中各选择一个字串使得这两个字串相同的方案数. 题解:建广义$SAM$,对每个点求出在第一个串中出现次数和第二个串中出现次数,乘起来就行了 卡点:无 C++ Co ...

  6. BZOJ2724:[Violet 6]蒲公英——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2724 输入格式 第一行两个整数n,m,表示有n株蒲公英,m次询问. 接下来一行 n 个空格分隔的整数 ...

  7. 51nod 1554:欧姆诺姆和项链——题解

    http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1554 题目: 有一天,欧姆诺姆发现了一串长度为n的宝石串,上面有五颜六色 ...

  8. excel 列索引(数字)转列名

    function index2ColName($columnNumber) { $dividend = $columnNumber; while ($dividend > 0) { $modul ...

  9. 【简单算法】37.Shuffle an Array

    题目: 打乱一个没有重复元素的数组. 示例: // 以数字集合 1, 2 和 3 初始化数组. ,,}; Solution solution = new Solution(nums); // 打乱数组 ...

  10. HTML5 canvas 创意:飞翔的凤凰

    当我看到这件作品的时候,我表示非常喜欢.这个作品的产生不仅仅需要编程和算法,作者肯定是个充满了艺术细胞的人.倘若有什么canvas艺术作品比赛的话,我想它就是获奖的那个. 先观赏下演示吧.注意,要看到 ...