#!/bin/env python
# _*_coding:utf-8_*_
#!!!!!!!!!!!!describe:this script shoud install python-devel and pip install MySQL-python
import subprocess
import traceback
import sys
from flask import Flask
from flask import request
import threading
import MySQLdb
from datetime import datetime
import time

app = Flask(__name__)

def mysqlCmd(version,subversion,sid,event_type,extra_info):
if subversion:
subversion = time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(int(subversion) / 1000))

event_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
event_time = str(event_time).replace("\"", "").replace("\'","")
conn=MySQLdb.connect(host='fof2.0.mysql.com',port=3306,db='py_crontab',user='py_fof',passwd='8Lakw26x',charset='utf8')
cs1=conn.cursor()
cs1.execute( '''insert into py_script_result_log(version,subversion,sid,event_type,extra_info,event_time)
values(%s,%s,%s,%s,%s,%s)''',(version,subversion,sid,event_type,extra_info,event_time))
conn.commit()
cs1.close()
conn.close()

def runCmd(cmd):
res = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
sout,serr = res.communicate()
#print (sout,serr)
#return res.returncode, sout, serr, res.pid
return sout, serr

def main(script,version,subversion,sid,event_type,extra_info=None):
mysqlCmd(version, subversion, sid, event_type, extra_info)
sout, serr = runCmd(script)
if len(serr.strip()) != 0:
event_type = 3
serr = str(serr).replace("\"", "").replace("\'","")
extra_info = "%s"%(serr)
mysqlCmd(version,subversion,sid,event_type,extra_info)
else:
event_type = 2
mysqlCmd(version,subversion,sid,event_type,extra_info)

@app.route('/py_fof_2_1.py_fof_fund_company_detail_daily_2_1.sh',methods={"POST","GET"})
def index1():
script = 'sh py_fof_2_1.py_fof_fund_company_detail_daily_2_1.sh'
#获取变量
version = request.values.get("version")
try:
subversion = request.values.get("subversion")
except:
subversion = None
sid = request.values.get("sid")
res = program_start(script, version, subversion, sid)
return res

@app.route('/py_fof_fund_manager_detail_daily_2_1.sh',methods={"POST","GET"})
def index2():
script = 'sh py_fof_fund_manager_detail_daily_2_1.sh'
version = request.values.get("version")
try:
subversion = request.values.get("subversion")
except:
subversion = None
sid = request.values.get("sid")
res = program_start(script, version, subversion, sid)
return res

@app.route('/py_fof_monetary_funds_details_daily_2_1.sh',methods={"POST","GET"})
def index3():
script = 'sh py_fof_monetary_funds_details_daily_2_1.sh'
version = request.values.get("version")
try:
subversion = request.values.get("subversion")
except:
subversion = None
sid = request.values.get("sid")
res = program_start(script, version, subversion, sid)
return res

@app.route('/py_fof_non_monetary_funds_details_daily_2_1.sh',methods={"POST","GET"})
def index4():
script = 'sh py_fof_non_monetary_funds_details_daily_2_1.sh'
version = request.values.get("version")
try:
subversion = request.values.get("subversion")
except:
subversion = None
sid = request.values.get("sid")
res = program_start(script, version, subversion, sid)
return res

def program_start(script, version, subversion, sid ):
event_type = 1
t = threading.Thread(target=main, args=(script, version, subversion, sid, event_type))
t.start()
return '<h3> execute success </h3>'

if __name__ == '__main__':
try:
host = sys.argv[1]
port = int(sys.argv[2])
except BaseException:
print 'argv error,exit - {0}'.format(traceback.format_exc())
sys.exit(1)
app.run(host=host,port=port,debug=True)

flask 封装的更多相关文章

  1. 中恳中笨 搭建flask封装环境

    话不多说,先干再说..... 打开pycharm,创建一个关于flask的项目 2.创建一个App的文件包 3.把staic和templates文件包拖进App里 4.把app.py文件改为manag ...

  2. Python超级明星WEB框架Flask

    Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug和模 ...

  3. Flask 应用最佳实践

    一个好的应用目录结构可以方便代码的管理和维护,一个好的应用管理维护方式也可以强化程序的可扩展性 应用目录结构 假定我们的应用主目录是"flask-demo",首先我们建议每个应用都 ...

  4. Flask技术问题汇总

    1:Flask 使用 request对象代理了当前请求的上下文.这么做什么好处和坏处? 好处:flask封装了C端发起request对象,这样就可以使用上下文临时把某些对象变为全局可访问:如果不封装, ...

  5. Flask(python)异步(ajax)返回json格式数据

    主要讨论两个问题,第一个是关于json.dumps 与jsonify区别,第二个是几种异步的区别(见jQuery中的$.getJSON.$.ajax.$.get.$.post的区别). json.du ...

  6. flask基础--第二篇

    1.Flask中的HTTPResponse,Redirect, render #导入render_template和redirect from flask import Flask,render_te ...

  7. flask第一章 flask启动 路由视图 FlaskRequest jinja2 FlaskSession

    一.简单了解flask web框架 优点: 小而精,组件只有session,第三方机构强烈支持flask,极其简单 缺点: 由于第三方软件的关系,稳定性相对较差,flask-session 扩展知识: ...

  8. Flask简介,安装,demo,快速入门

    1.Flask简介 Flask是一个相对于Django而言轻量级的Web框架. 和Django大包大揽不同,Flask建立于一系列的开源软件包之上,这其中 最主要的是WSGI应用开发库Werkzeug ...

  9. Flask:初见

    Windows 10家庭中文版,Python 3.6.4 从Flask官网开始学起. 介绍 Flask是一个Python的Web开发微框架,基于Werkzeug.Jinja2模块(and good i ...

随机推荐

  1. Linux下修改tomcat内存

    由于服务器上放的tomcat太多,造成内存溢出. 常见的内存溢出有以下两种: java.lang.OutOfMemoryError: PermGen space java.lang.OutOfMemo ...

  2. BZOJ 4720 [Noip2016]换教室

    4720: [Noip2016]换教室 Description 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i( ...

  3. (转)Maven学习总结(七)——eclipse中使用Maven创建Web项目

    孤傲苍狼只为成功找方法,不为失败找借口! Maven学习总结(七)——eclipse中使用Maven创建Web项目 一.创建Web项目 1.1 选择建立Maven Project 选择File -&g ...

  4. bug5 Debug:This kind of launch is configured to openthe debug perspective when it解决办法

    启动tomcat时,myeclipse报错: This kind of launch is configured to openthe debug perspective when itsuspend ...

  5. 21天实战caffe笔记_第三天

    1 深度学习工具汇总 (1)  caffe : 由BVLC开发的基于C++/CUDA/Python实现的卷积神经网络,提供了面向命令行.Matlab和Python的绑定接口.特性如下: A 实现了前馈 ...

  6. vue实例的方法

    1.mount挂载 vm.$mount('#app') 2.销毁 vm.$destroy() 3.刷新实例 vm.$forceUpdate() 4.更新后的操作 vm.$nextTick(functi ...

  7. python+正态分布+蒙特卡洛预测男女身高概率!

    sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction.htm?courseId=1005269003&utm_campai ...

  8. Python的生成器进阶玩法

    Python的生成器进阶玩法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.yield的表达式形式 #!/usr/bin/env python #_*_coding:utf-8 ...

  9. windows下非管理员权限安装mysql

    windows下,mysql有两种安装方式: 1.msi安装 2.zip安装 无论是哪种安装方式,都因为需要将mysql安装为一个服务,所以必须要以管理员权限安装. 因为公司的换了虚拟机,无法取得管理 ...

  10. Spring Boot 1.4 单元测试

    在1.3中单元测试这样子的类似代码: // SpringJUnit支持,由此引入Spring-Test框架支持! @RunWith(SpringJUnit4ClassRunner.class) // ...