-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathapp.py
More file actions
68 lines (55 loc) · 2.08 KB
/
app.py
File metadata and controls
68 lines (55 loc) · 2.08 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from flask import Flask, render_template, json, make_response, send_file, send_from_directory
from flask import flash, request, redirect, url_for
from Graph import *
from common import *
#规定上传目录和允许的后缀名
UPLOAD_FOLDER = './uploads'
ALLOWED_EXTENSIONS = {'xls','xlsx'}
#初始化工作
app = Flask(__name__)
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
# 路由大军
@app.route("/")
def index():
return render_template("index.html")
@app.route("/upload",methods=['POST'])
def upload_file():
if 'file' not in request.files:
return Res(code=-1,msg="No file part")
file = request.files['file']
if file.filename == '':
return Res(code=-1,msg='No selected file')
if file and allowed_file(file.filename):
file.save(os.path.join(app.config['UPLOAD_FOLDER'], file.filename))
return Res({"filename":file.filename})
@app.route("/checktablename/<filename>/<tablename>",methods=['GET'])
def checktable(filename,tablename):
return checkTableName(filename,tablename)
@app.route("/gettablename/<filename>",methods=['GET'])
def gettable(filename):
return getTableName(filename)
@app.route("/rendertable",methods=["POST"])
def rendertable():
strdata=list(request.form.to_dict().keys())[0]
jsondata=json.loads(strdata)
#创建对象并处理空数据
graph=Graph(jsondata)
resdict=graph.render()
return resdict
@app.route("/downloads/demo",methods=['GET'])
def downloadsDemoData():
directory = os.path.abspath('./templates')
return send_from_directory(directory, 'demo.xlsx', as_attachment=True)
@app.route("/downloads/<filename>",methods=['GET'])
def downloads(filename):
directory = os.path.abspath('./downloads') # 规定目录
return send_from_directory(directory, filename, as_attachment=True)
#自带函数
def allowed_file(filename):
return '.' in filename and \
filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
#程序主入口
if __name__ == "__main__":
app.config['JSON_AS_ASCII'] = False
app.config['JSONIFY_MIMETYPE'] = "application/json;charset=utf-8"
app.run()