# -*- coding: utf-8 -*- from flask import Flask, render_template, request, flash, redirect, url_for, send_file from werkzeug.utils import secure_filename import os import secrets import logging from models import db, PrintedDetal from datetime import datetime logging.basicConfig(filename='app.log', encoding='utf-8', level=logging.DEBUG) app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///app.db' app.config['UPLOAD_IMG_FOLDER'] = os.path.join('static', 'uploads', 'img') app.config['UPLOAD_STL_FOLDER'] = os.path.join('static', 'uploads', 'stl') app.config['UPLOAD_SRC_FOLDER'] = os.path.join('static', 'uploads', 'src') db.init_app(app) def getlldb(): allDetals = {} detalsQuery = PrintedDetal.query.all() for detal in detalsQuery: detals = {} detals['id'] = detal.id detals['img'] = detal.img detals['stl'] = detal.stl detals['src'] = detal.src detals['isprinted'] = detal.isprinted detals['date'] = detal.dateadd allDetals[detal.id] = detals return allDetals @app.route("/") def index(): getall = getlldb() return render_template("index.html", detals=getall) @app.route("/admin", methods=['GET', 'POST']) def admipage(): return render_template("adminpage.html") @app.route('/uploader', methods=['GET', 'POST']) def upload_file(): if request.method == 'POST': image_file = request.files['img'] stl_file = request.files['stl'] src_file = request.files['src'] if len(image_file.filename) > 0: filename = image_file.filename.split('.') image_file.filename = secrets.token_hex(15) + '.' + filename[-1] image_file.save(os.path.join( app.config['UPLOAD_IMG_FOLDER'], image_file.filename)) if len(stl_file.filename) > 0: filename = stl_file.filename.split('.') stl_file.filename = secrets.token_hex(15) + '.' + filename[-1] stl_file.save(os.path.join( app.config['UPLOAD_STL_FOLDER'], stl_file.filename)) if len(src_file.filename) > 0: filename = src_file.filename.split('.') src_file.filename = secrets.token_hex(15) + '.' + filename[-1] src_file.save(os.path.join( app.config['UPLOAD_SRC_FOLDER'], src_file.filename)) if request.form.get('isprinted') == 'on': isprinered = True else: isprinered = False detal = PrintedDetal(img=image_file.filename, stl=stl_file.filename, src=src_file.filename, isprinted=isprinered, dateadd=datetime.now().strftime('%d.%m.%Y')) 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")