# -*- coding: utf-8 -*- from flask import Flask, render_template, request, flash, redirect, url_for from werkzeug.utils import secure_filename import os, secrets from models import db, PrintedDetal import logging logging.basicConfig(filename='app.log', encoding='utf-8', level=logging.DEBUG) UPLOAD_IMG_FOLDER = os.path.join('static', 'img', 'uploads') UPLOAD_STL_FOLDER = os.path.join('static', 'stl') ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'stl'} app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.config['UPLOAD_FOLDER'] = UPLOAD_IMG_FOLDER app.config['UPLOAD_FOLDER2'] = UPLOAD_STL_FOLDER db.init_app(app) @app.route("/") def index(): allDetals = {} detalsQuery = PrintedDetal.query.all() for detal in detalsQuery: detals = {} detals['img'] = detal.img detals['stl'] = detal.stl detals['src']= detal.src detals['isprinted'] = detal.isprinted allDetals[detal.id] = detals print(allDetals) return render_template("index.html") # , detals=detals) @app.route("/admin", methods=['GET', 'POST']) def admipage(): logging.debug("adminpage loaded") return render_template("adminpage.html") @app.route('/uploader', methods=['GET', 'POST']) def upload_file(): hex = secrets.token_hex(15) if request.method == 'POST': image_file = request.files['imgfile'] stl_file = request.files['stlfile'] src_file = request.files['stlfile'] if len(image_file.filename) > 0: image_file.save(os.path.join(app.config['UPLOAD_FOLDER'], secure_filename(image_file.filename))) if len(stl_file.filename) >0: stl_file.save(os.path.join(app.config['UPLOAD_FOLDER2'], secure_filename(stl_file.filename))) if len(src_file.filename) >0: src_file.save(os.path.join(app.config['UPLOAD_FOLDER2'], secure_filename(src_file.filename))) if request.form.get('isprinted') == 'on': isprinered = True else: isprinered = False logging.debug(image_file) logging.debug(stl_file) logging.debug(isprinered) detal = PrintedDetal(img=image_file.filename, stl=stl_file.filename, src=src_file.filename, isprinted=isprinered) db.session.add(detal) db.session.commit() return redirect(url_for('admipage')) if __name__ == "__main__": app.run(host="0.0.0.0", debug="True", port="3800")