python 使用tornado书写接口(一)和curl相关简单使用

这个功能半个月前就写好了,当时是想做cateid在沙箱和线上环境接口的diff,本来使用flask去写(我之前稍微用过一点,做个接口比较简单),后来同事说公司有写好的基于tornado框架的接口相关的东西,所以有改成这个,其实都是最基本的,想写个总结,想研究一下tornado方便以后做一些页面什么的。

背景:目前线上有多种的cateid类型(二级类目),二级类目对应很多个三级类目,之前出现过三级类目返回不统一的情况,所以想做个接口多个比对,如果没有问题返回“no different”,如果有不同把不同二级类目和三级类目返回。

思路:目前有同事吧二级类目做个接口统一返回给我,我根据二级类目cateid请求沙箱、线上接口做diff。功能写好后,用tornado做个http接口给同事调用,把到对应页面展示出来。


对于返回response的json结果写了两个小方法,虽然不通用,也拿出来写一下吧


还有一个不怎么通用的check方法,目前测试看效果还不错,如图:


diff功能就这些,下面就是使用tornado制作接口


很简单继承RequestHandler类,重写get方法。write方法会把结果打印到response中。



运行后直接用浏览器、postman或者curl测试一下。

因为每次调用diff会10s以上,目前还不会异步,所以就用官方文档给的demo写一下,思路都是一样的。


使用curl构建get请求(关于linux常用的大家有时间还是多学学,很方便的)结果如图:


使用curl否建post请求,接口见附图:



curl使用-d参数上传表单内容(我理解就是requests.post()方法params和data两个参数),-X表示请求方法(有-d了,默认post请求),这里面问题就是使用拼接方式为什么无法获取“pwd”参数,目前原因不值,我后面在跟进一下这个问题。

其他常见curl命令见链接:curl命令博客地址

再说支持html页面的,如图:


上面就是2个继承RequestHandler类的接口类(我理解就是http的接口类),render用于指向templates文件下的html文件,但是页面跳转不在接口类里面控制而是在html文件中


发现这个是因为html是从官网demo直接copy的,但是我写的接口类名是自定义的,所以出现这个,找个好久后来才发现这个有一个action标识。

下面是main函数实例化Application类是包含template和static文件是书写,如图:


还有一个小问题就是当参数debug为false即调试模式关闭,就需要杀掉端口号,要不然就要改成其他没占用端口号,linux命令如图:


使用lsof -i:8000(8000不是固定在toradno可以使用define函数定义全局的端口号)查找该端口号对应的现成,有一个概念就是:端口不是独立存在,端口依附于线程的,线程开启后对应端口就开启了,所以找到pid号后,在使用kill -9 +“pid号”就可以杀掉线程,在跑main函数即可。





  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值