import logging import os from flask import Flask, send_from_directory from flask_cors import CORS import route.analyze import route.result import route.upload from config import VERSION_PREFIX, MAX_CONTENT_LENGTH, MYSQL_URI, UPLOAD_DIR from db import db from route.util import make_response app = Flask(__name__) cors = CORS(app, resources={r"/*": {"origins": "*"}}) app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH app.config['SQLALCHEMY_DATABASE_URI'] = MYSQL_URI app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX) app.register_blueprint(route.analyze.bp, url_prefix=VERSION_PREFIX) app.register_blueprint(route.result.bp, url_prefix=VERSION_PREFIX) db.init_app(app) with app.app_context(): # db.drop_all() db.create_all() try: os.mkdir(UPLOAD_DIR + "/result") except: pass try: for i in os.listdir(UPLOAD_DIR): if i.endswith(".running"): os.remove(UPLOAD_DIR + "/" + i) except: pass @app.route("/") def hello_world(): return "

Hello, World!

" @app.route("/file/") def download_file(name): return send_from_directory(UPLOAD_DIR + '/result/', name) @app.errorhandler(413) def error_handler(e): logging.exception(e) return make_response(413, "entity too large, max acceptable: " + str(MAX_CONTENT_LENGTH) + " bytes", {}) @app.errorhandler(404) def error_handler(e): logging.exception(e) return make_response(404, "path not found.", {}) @app.errorhandler(Exception) def error_handler(e): logging.exception(e) return make_response(500, "unknown internal server error.", {}) if __name__ == '__main__': app.run()