輕量級web框架——flask(隨筆)
阿新 • • 發佈:2019-02-19
最近在使用flask框架試著寫一些實用的小程式。便於日後複習總結特發此篇部落格
因為程式碼之間有相互呼叫,部分程式碼為展示,因此直接copy是無法執行的
#coding=utf-8 from flask import Flask from flask import render_template from flask import request from multiprocessing import Pool #多程序 from read_cmdb import * import json, os, datetime # def child_process_active(name, sleep_time): def child_process_active(): # print 'child process %s with id %s start.' %(name, os.getpid()) # time.sleep(sleep_time) # print 'child process %s with id %s end.' %(name, os.getpid()) webServer() def child_process_run(): print 'parent processid is %s.' % os.getpid() p = Pool(6) for i in range(12): p.apply_async(child_process_active(), args=('zni' + str(i), i + 1)) print 'child processes are running.' p.close() p.join() print 'all processes end.' def webServer(): app = Flask(__name__) @app.route('/getlog', methods=['psot', 'get']) def get_log(): # time.sleep(10) return render_template("getlog.html") #返回getlog.html @app.route('/get_date') def get_date(): #獲取當前時間至三天前的日期 dateList = get_nday_list(3) return json.dumps({'datelist':dateList}) #將值返回到前端頁面 @app.route('/get_envi') def get_env(): envi = load_envi() return json.dumps({'envi':envi}) @app.route('/get_appnames') def get_appnames(): appnames = load_appname() return json.dumps({'appnames':appnames}) @app.route('/get_ips') def get_ips(): # appname = request.form.get("appname") appname = request.args.get("appname") envi = request.args.get("envi") ips = load_ip_info(appname, envi) return json.dumps({"ips":ips}) @app.route('/post', methods=['post']) def get_log_post(): if request.method == 'POST': data = json.loads(request.form.get('data')) #從前端獲取引數 envi = data['envi'].encode('utf-8') date = data['date'].encode('utf-8') app= data['app'].encode('utf-8') ip = data['ip'].encode('utf-8') print date, date[5:7], app, ip file_name = osActive(date, app, ip) print file_name return json.dumps({'status': 500}) app.run(port=8888) def osActive(date, app, ip): date = date app = app ip = ip fileName = '/home/opsuser/log/%s/%s.log' %(date[:7], app+'_'+date+'_'+ip) print fileName # os.system('scp [email protected]/%s /var/www/html') fileName def get_nday_list(n): before_n_days = [] for i in range(1, n + 1)[::-1]: before_n_days.append(str(datetime.date.today() - datetime.timedelta(days=i))) return before_n_days def main(): # webServer() child_process_run() if __name__ == '__main__': main()