47 lines
1.3 KiB
Python
47 lines
1.3 KiB
Python
from flask import Flask, request, render_template, send_from_directory, url_for
|
|
|
|
from flask_wtf import FlaskForm
|
|
from flask_wtf.file import FileField, FileRequired, FileAllowed
|
|
from wtforms import SubmitField
|
|
from flask_uploads import UploadSet, IMAGES, configure_uploads
|
|
from scripts.img_V01 import ComputeMain
|
|
|
|
app = Flask(__name__)
|
|
|
|
app.config['SECRET_KEY'] = 'secret'
|
|
app.config['UPLOADED_PHOTOS_DEST'] = 'uploads'
|
|
|
|
photos = UploadSet('photos', IMAGES)
|
|
configure_uploads(app, photos)
|
|
|
|
class PendantForm(FlaskForm):
|
|
photo = FileField('file', validators=[
|
|
FileAllowed(photos, 'Only images are allowed'),
|
|
FileRequired('File field should not be empty'),
|
|
])
|
|
submit = SubmitField('Compute')
|
|
|
|
@app.route('/upload/<filename>')
|
|
def get_file(filename):
|
|
return send_from_directory(app.config['UPLOADED_PHOTOS_DEST'], filename)
|
|
|
|
@app.route('/', methods=['GET', 'POST'])
|
|
def index():
|
|
form = PendantForm();
|
|
|
|
if form.validate_on_submit():
|
|
filename = photos.save(form.photo.data)
|
|
file_url = url_for('get_file', filename=filename)
|
|
|
|
# Compute surface tension
|
|
results = ComputeMain(app.config['UPLOADED_PHOTOS_DEST'] + "/" + filename)
|
|
else:
|
|
file_url = None
|
|
results = None
|
|
return render_template('index.html', form=form, file_url=file_url, results=results)
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
app.run()
|