app.py 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. from concurrent.futures import ThreadPoolExecutor
  2. import logging
  3. from flask import Flask
  4. import route.upload
  5. from config import VERSION_PREFIX, MAX_CONTENT_LENGTH
  6. from route.util import make_response
  7. from db import db
  8. app = Flask(__name__)
  9. app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
  10. pool = ThreadPoolExecutor(max_workers=2)
  11. app.config['SQLALCHEMY_DATABASE_URI'] = f'mysql://{MYSQL_USERNAME}:{MYSQL_PASSWORD}@{MYSQL_ADDRESS}/{MYSQL_DATABASE}'
  12. app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
  13. db.init_app(app)
  14. with app.app_context():
  15. # db.drop_all()
  16. db.create_all()
  17. @app.route("/")
  18. def hello_world():
  19. return "<p>Hello, World!</p>"
  20. app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX)
  21. @app.errorhandler(413)
  22. def error_handler(e):
  23. logging.exception(e)
  24. return make_response(413, "entity too large, max acceptable: " + str(MAX_CONTENT_LENGTH) + " bytes", {})
  25. @app.errorhandler(Exception)
  26. def error_handler(e):
  27. logging.exception(e)
  28. return make_response(500, "unknown internal server error.", {})
  29. if __name__ == '__main__':
  30. app.run()