项目背景提要
最近公司经常有测试,产品,开发人员需要我帮忙查看服务器上面发送的短信验证码来完成工作上的一些需求。我们的短信验证码由我们后台程序发出,调用第三方短信平台发送,这中间我们会将短信发送内容记录到日志文件,最终是否能发送成功是第三方短信平台来决定的。这时候如果他们填写的是一个不存在的手机号码的话是无法接收到短信,但日志文件里面有记录,如果手工来完成这样的工作,我需要进入到服务器,再使用grep来过滤。过程不多,但次数多了也有点繁琐。最终考虑使用一个简单的程序来实现让他们通过Web可以直接查看。
需要实现我这样的需求,我需要从前端传入一个唯一参数到后台,再进行处理返回,有考虑过自己写前端,通过提交来实现,但相对较复杂。最后决定使用Python之Flask框架来实现,简单,快捷,方便,只需要几行代码即可搞定。
实现步骤
首先服务器需要有Python环境,我的为CentOS,所以默认是有Python环境
安装Flask模块
pip install flask
创建项目index.py(任何位置都可以)
from flask import Flask from subprocess import Popen, PIPE app = Flask(__name__) @app.route('/<phone_number>') def index(phone_number): info = Popen(["grep", phone_number, "/home/gogen/nohup.out"], stdout=PIPE) info = info.stdout.readlines() return info[-1] if __name__ == '__main__': app.run(host="0.0.0.0")
说明:
<phone_number> 是我们在URI中要传入的参数,为电话号码
index 这个函数的作用就是使用shell命令根据电话号码过滤出所有相关的记录,并生成一个列表,然后返回列表中最后一条信息
启动项目
nohup python index.py &
说明:项目启动成功后默认监听5000端口
测试
最后通过Web访问结果如下
时间: 2024-10-11 03:00:09