redprint.py 583 B

123456789101112131415161718
  1. # 红图
  2. class Redprint:
  3. def __init__(self, name):
  4. self.name = name
  5. self.mound = []
  6. def route(self, rule, **options):
  7. def decorator(f):
  8. self.mound.append((f, rule, options))
  9. return f
  10. return decorator
  11. def register(self, bp, url_prefix=None):
  12. if url_prefix is None:
  13. url_prefix = '/' + self.name
  14. for f, rule, options in self.mound:
  15. endpoint = self.name + '+' + options.pop("endpoint", f.__name__)
  16. bp.add_url_rule(url_prefix + rule, endpoint, f, **options)