app.py 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import logging
  2. from flask import Flask
  3. from flask_cors import CORS
  4. import route.analyze
  5. import route.result
  6. import route.upload
  7. from config import VERSION_PREFIX, MAX_CONTENT_LENGTH, MYSQL_URI
  8. from db import db
  9. from route.util import make_response
  10. app = Flask(__name__)
  11. cors = CORS(app, resources={r"/*": {"origins": "*"}})
  12. app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
  13. app.config['SQLALCHEMY_DATABASE_URI'] = MYSQL_URI
  14. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  15. app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX)
  16. app.register_blueprint(route.analyze.bp, url_prefix=VERSION_PREFIX)
  17. app.register_blueprint(route.result.bp, url_prefix=VERSION_PREFIX)
  18. db.init_app(app)
  19. with app.app_context():
  20. # db.drop_all()
  21. db.create_all()
  22. @app.route("/")
  23. def hello_world():
  24. return "<p>Hello, World!</p>"
  25. @app.errorhandler(413)
  26. def error_handler(e):
  27. logging.exception(e)
  28. return make_response(413, "entity too large, max acceptable: " + str(MAX_CONTENT_LENGTH) + " bytes", {})
  29. @app.errorhandler(404)
  30. def error_handler(e):
  31. logging.exception(e)
  32. return make_response(404, "path not found.", {})
  33. @app.errorhandler(Exception)
  34. def error_handler(e):
  35. logging.exception(e)
  36. return make_response(500, "unknown internal server error.", {})
  37. if __name__ == '__main__':
  38. app.run()