Webview 中FaultyInfo代码说明
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代码说明的更多相关文章
- IOS网络第七天WebView-03js中调用webView中的代码
*********** #import "HMViewController.h" @interface HMViewController () <UIWebViewDeleg ...
- Android WebView中的JavaScript代码使用
在WebView中使用JavaScript 如果你想要载入的页面中用了JavaScript,你必须为你的WebView使能JavaScript. 一旦使能之后,你也可以自己创建接口在你的应用和Java ...
- Android中WebView的JavaScript代码和本地代码交互的三种方式
一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...
- android:如何通过chrome远程调试APP中的webView的h5代码
今天出现一个问题,在老板的Mate9 Pro上,我们APP的所有H5页面都是一片空白,但是在其他手机上都是好的,那么我们就怀疑是h5报错了,但是到底是什么错,无法得知,所以就想要可以像在pc的chro ...
- UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv
原文:UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) - walterlv UWP 在 WebView 中执行 JavaScript 代码(用于模拟用户输入等) ...
- 混合开发 webview 中file 控件 点击后无反应解决方法
最近在做个项目 ,需要 使用 file 控件上传 图片到服务器 ,在手机浏览器中 可以正常选择照片,但是放到 android 应用中的webview中,file 控件点击后就没有反应. 百度了一番后, ...
- iOS之在webView中引入本地html,image,js,css文件的方法 - sky//////////////////////////////////////ZZZZZZZZZZZZZZZ
iOS之在webView中引入本地html,image,js,css文件的方法 2014-12-08 20:00:16CSDN-sky_2016-点击数:10292 项目需求 最近开发的项 ...
- Android安全开发之WebView中的地雷
Android安全开发之WebView中的地雷 0X01 About WebView 在Android开发中,经常会使用WebView来实现WEB页面的展示,在Activiry中启动自己的浏览器,或者 ...
- demo工程的清单文件及activity中api代码简单示例
第一步注册一个账户,并创建一个应用.获取app ID与 app Key. 第二步下载sdk 第三步新建工程,修改清单文件,导入相关的sdk文件及调用相应的api搞定. 3.1 修改清单文件,主要是加入 ...
随机推荐
- 关于已部署的WCF服务升级的问题
在日常的开发过程中,我们会经常迭代发布不同的版本,所以WCF服务的接口也会经常处于变动的状态,比如在传递实体类中新加一个字段.修改参数名称等等关于服务升级的问题.但是我们不可能让已发布的版本重新引用新 ...
- c#中语句的先后顺序对结果的影响
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Test ...
- == 和equal的区别?-005
1,== 和equal的区别? ==比较两个值是否相等,equal比较对对象的引用是否一致 举例: int a = 2; int b = 2; System.err.println(a == b);/ ...
- 【】Python】异常处理try...except、raise
一.try...except 有时候我们写程序的时候,会出现一些错误或异常,导致程序终止.例如,做除法时,除数为0,会引起一个ZeroDivisionError 例子: 1 2 3 4 a=10 b= ...
- intelliJ IDEA最常用的快捷键
一.使用相关快捷键 1.重写接口实现类:Ctrl+I 2.搜索:Shift+Shift 3.生成get或set方法快捷键:Alt+insert: 4.导入未实现的方法,强制类型转换:Alt+Ent ...
- 【bzoj1593】[Usaco2008 Feb]Hotel 旅馆 线段树区间合并
题目描述 奶牛们最近的旅游计划,是到苏必利尔湖畔,享受那里的湖光山色,以及明媚的阳光.作为整个旅游的策划者和负责人,贝茜选择在湖边的一家著名的旅馆住宿.这个巨大的旅馆一共有N (1 <= N & ...
- 【题解】CF#285 E-Positions in Permutations
挺有收获的一道题ヾ(◍°∇°◍)ノ゙ 恰好为 m ,这个限制仿佛不是很好处理.一般而言,我所了解的恰好为 k 的条件,不是用组合数 / dp状态转移 / 斜率二分就只剩下容斥了.我们可以先处理出 nu ...
- [洛谷P4345][SHOI2015]超能粒子炮·改
题目大意:给你$n,k$,求:$$\sum\limits_{i=0}^k\binom n i\pmod{2333}$$题解:令$p=2333,f(n,k)\equiv\sum\limits_{i=0} ...
- Unity游戏开发技术的最佳实践
活动详情 作为全球规模最大的Unity开发者聚会,历年的Unite大会都成为开发者们获取Unity最新技术知识,交流开发经验,把握行业发展脉搏,体验全球前沿科技与高品质Made with Unit ...
- BZOJ4200 & 洛谷2304 & UOJ132:[NOI2015]小园丁与老司机——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=4200 https://www.luogu.org/problemnew/show/P2304 ht ...