-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapplication.py
125 lines (97 loc) · 3.57 KB
/
application.py
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
import os
import urllib.request
from flask import Flask, flash, request, redirect, render_template, send_file, send_from_directory
from werkzeug.utils import secure_filename
import pandas as pd
from output_printer_final import print_result
import gurobipy as gb
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads/'
basedir = os.path.abspath(os.path.dirname(__file__))
app.secret_key = "secret key"
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
file_dir = os.path.join(basedir, app.config['UPLOAD_FOLDER'])
if not os.path.exists(file_dir):
os.makedirs(file_dir)
ALLOWED_EXTENSIONS = set(['csv'])
def allowed_file(filename):
return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS
def generateresult(filenames, file_dir):
""" filename = filenames[0]
filepath=os.path.join(file_dir, filename)
a=pd.read_csv(filepath, header=None)
b=2*a """
# filedownloadpath=os.path.join(file_dir, 'download-'+filename.split('.')[0]+'.xlsx')
print_result(file_dir, filenames)
# return(b)
@app.route('/')
def upload_form():
return render_template('upload_files.html')
@app.route('/', methods=['POST'])
def upload_file():
if request.method == 'POST':
filenames = []
if 'file1' not in request.files:
flash('No file part')
return redirect(request.url)
file = request.files['file1']
if file.filename == '':
flash('No file selected for uploading')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
filenames.append(filename)
file.save(os.path.join(file_dir, filename))
# downloadfilename = file_dir + '\download-file.csv'
# b.to_csv(os.path.join(file_dir, downloadfilename))
# return render_template('simple.html', tables=[b.to_html(classes='data')], titles=b.columns.values) #redirect('/download/<downloadfilename>')
else:
flash('Allowed file types csv')
return redirect(request.url)
file = request.files['file2']
if file.filename == '':
flash('No file selected for uploading')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
filenames.append(filename)
file.save(os.path.join(file_dir, filename))
else:
flash('Allowed file types csv')
return redirect(request.url)
file = request.files['file3']
if file.filename == '':
flash('No file selected for uploading')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
filenames.append(filename)
file.save(os.path.join(file_dir, filename))
else:
flash('Allowed file types csv')
return redirect(request.url)
file = request.files['file4']
if file.filename == '':
flash('No file selected for uploading')
return redirect(request.url)
if file and allowed_file(file.filename):
filename = secure_filename(file.filename)
filenames.append(filename)
file.save(os.path.join(file_dir, filename))
else:
flash('Allowed file types csv')
return redirect(request.url)
flash('Files successfully uploaded, the page will direct to the result soon!')
""" b = generateresult(filenames, file_dir)
downloadfilename = file_dir + '\model-reopen-solution.xlsx'
b.to_csv(os.path.join(file_dir, downloadfilename)) """
generateresult(filenames, file_dir)
redirect('/')
return render_template('download.html')
@app.route("/download/<filename>", methods=['GET'])
def download_file(filename):
directory='uploads'
try:
return send_from_directory(directory, filename=filename, as_attachment=True)
except FileNotFoundError:
abort(404)