tornado跳转到html页面,使用python的tornado配合html页面示例

背景:java写的非标加密算法,测试时执行java工程进行解密测试,很不方便。

目的:想写个web页面,使得任何测试人员都可以在输入加密串时得到解密后字段,方便日志查询及字段核对。(额,算法部分就不写了。)

步骤:由于内部使用的是非标Base64加密算法,所以我该次操作分为3个部分,以下具体介绍并附带python代码

1 将java的非标加密算法转为python

2 使用python的tornado调用该算法

3 编写html页面,简单明了

一 java非标加密算法转为pythondncrypte.py

#-*- coding:utf-8 -*-

import array

#该部分设置字符对应规则,后续解密部分使用它来做对应

BASE64CHAR=[****]

...

def dncryped(string):

#定义数组,用来存放解密后的字符,outlen为数组长度

outbyte=[0 for j in range(outlen)]

#解密规则及算法,得到解密后的outbyte数组

return ‘‘.join(outbyte)

#print dncryped("FMK60hD") 测试部分

问题:python中提供的数据类型远少于java,但是它提供了转化功能。比如‘ord‘将字符对应到ascii码,‘chr‘将ascii码对应到字符,可在做位于时使用。返回是使用了‘‘.join(outbyte),是因为outbyte中存储的ascii码,所以将其转化为对应的字符数组。

二 使用python的tornado调用该算法  test.py

#-*- coding:utf-8 -*-

importtornado.httpserverimporttornado.ioloopimporttornado.optionsimporttornado.webfrom dncrypte import * #引入自己的方法

from tornado.options importdefine, options

define("port", default=8000, help="run on the given port", type=int)classIndexHandler(tornado.web.RequestHandler):defget(self):

encry=self.get_argument(‘Encrypted‘, ‘Hello‘)

Encrypted=dncryped(encry) #调用解密方法

self.write(Encrypted)if __name__ == "__main__":

tornado.options.parse_command_line()

app= tornado.web.Application(handlers=[(r"/", IndexHandler)])

http_server=tornado.httpserver.HTTPServer(app)

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

启动:python test.py --port=9999

访问:ip:9999,在url后添加?/Encrypted=加密串,enter即可得到解密结果,如下:

20180110182203678980.png

三 编写html页面test.html&test.py

原本到第二步即可使用了,不过在url中输入加密串总是不太方便,于是想配合html5,做一个简单页面。达到如下效果:

20180110182203680933.png

1 新增一个文件 test.html

请输入加密串:

2 需要改动原来的test.py

#-*- coding:utf-8 -*-

importtornado.httpserverimporttornado.ioloopimporttornado.optionsimporttornado.webfrom dncrypte import * #引入自己的方法

from tornado.options importdefine, options

define("port", default=8000, help="run on the given port", type=int)classIndexHandler(tornado.web.RequestHandler):defget(self):

result= ""Encrypted= ""self.render(‘test.html‘,**getlocals(locals()))defpost(self):

encry=self.get_argument(‘Encrypted‘, ‘Hello‘)

result=dncryped(encry)

self.render(‘test.html‘,**getlocals(locals()))defgetlocals(locals):

tmpd={}for k,v inlocals.iteritems():if k not in [‘self‘]:

tmpd[k]=vreturntmpdif __name__ == "__main__":

tornado.options.parse_command_line()

app= tornado.web.Application(handlers=[(r"/", IndexHandler)])

http_server=tornado.httpserver.HTTPServer(app)

http_server.listen(options.port)

tornado.ioloop.IOLoop.instance().start()

原文:http://www.cnblogs.com/zhaoxd07/p/5190503.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值