2
0

main_view.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from .tool.func import *
  2. from .main_func_error_404 import main_func_error_404
  3. def main_view(name = ''):
  4. with get_db_connect() as conn:
  5. file_name = re.search(r'([^/]+)$', name)
  6. if not file_name:
  7. return main_func_error_404()
  8. else:
  9. file_name = file_name.group(1)
  10. dir_name = './views/' + re.sub(r'\.{2,}', '', name[:-len(file_name)])
  11. file_name = re.sub(r'\.cache_v(?:[0-9]+)$', '', file_name)
  12. mime_type = file_name.split('.')
  13. if len(mime_type) < 2:
  14. mime_type = 'text/plain'
  15. else:
  16. mime_type = mime_type[len(mime_type) - 1].lower()
  17. image_type = ['jpeg', 'jpg', 'gif', 'png', 'webp', 'ico', 'svg']
  18. if mime_type in image_type:
  19. if not mime_type == 'svg':
  20. mime_type = 'image/' + mime_type
  21. else:
  22. mime_type = 'image/svg+xml'
  23. elif mime_type == 'js':
  24. mime_type = 'text/javascript'
  25. elif mime_type == 'txt':
  26. mime_type = 'text/plain'
  27. else:
  28. mime_type = 'text/' + mime_type
  29. return flask.send_from_directory(
  30. dir_name, file_name,
  31. mimetype = mime_type
  32. )