1
0

page.py 1.5 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from flask import url_for
  2. from tool.typing import *
  3. def get_page(url, page: int, count: int):
  4. if count <= 9:
  5. page_list = [[f"{i + 1}", url_for(url, page=i + 1)] for i in range(count)]
  6. elif page <= 5:
  7. """
  8. [1][2][3][4][5][6][...][count - 1][count]
  9. """
  10. page_list = [[f"{i + 1}", url_for(url, page=i + 1)] for i in range(6)]
  11. page_list += [None,
  12. [f"{count - 1}", url_for(url, page=count - 1)],
  13. [f"{count}", url_for(url, page=count)]]
  14. elif page >= count - 5:
  15. """
  16. [1][2][...][count - 5][count - 4][count - 3][count - 2][count - 1][count]
  17. """
  18. page_list: Optional[list] = [["1", url_for(url, page=1)],
  19. ["2", url_for(url, page=2)],
  20. None]
  21. page_list += [[f"{count - 5 + i}", url_for(url, page=count - 5 + i), False] for i in range(6)]
  22. else:
  23. """
  24. [1][2][...][page - 2][page - 1][page][page + 1][page + 2][...][count - 1][count]
  25. """
  26. page_list: Optional[list] = [["1", url_for(url, page=1)],
  27. ["2", url_for(url, page=2)],
  28. None]
  29. page_list += [[f"{page - 2 + i}", url_for(url, page=page - 2 + i)] for i in range(5)]
  30. page_list += [None,
  31. [f"{count - 1}", url_for(url, page=count - 1)],
  32. [f"{count}", url_for(url, page=count)]]
  33. return page_list