urls.py 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. # **************************************************************************
  4. # Copyright © 2016 jianglin
  5. # File Name: urls.py
  6. # Author: jianglin
  7. # Email: xiyang0807@gmail.com
  8. # Created: 2016-12-21 22:18:28 (CST)
  9. # Last Update:星期四 2016-12-22 21:47:12 (CST)
  10. # By:
  11. # Description:
  12. # **************************************************************************
  13. from flask import Blueprint, g, abort
  14. from .views import (UserTopicListView, UserReplyListView, UserCollectListView,
  15. UserFollowerListView, UserFollowingListView)
  16. from api.user.models import User
  17. site = Blueprint('mine', __name__, url_prefix='/u/<username>')
  18. @site.url_value_preprocessor
  19. def pull_user_url(endpoint, values):
  20. g.username = values.pop('username')
  21. user = User.query.filter_by(username=g.username).first()
  22. if user is None:
  23. abort(404)
  24. @site.url_defaults
  25. def add_user_url(endpoint, values):
  26. if 'username' in values or not g.username:
  27. return
  28. values['username'] = g.username
  29. topic_list_view = UserTopicListView.as_view('topiclist')
  30. reply_list_view = UserReplyListView.as_view('replylist')
  31. collect_list_view = UserCollectListView.as_view('collectlist')
  32. follower_list_view = UserFollowerListView.as_view('followerlist')
  33. following_list_view = UserFollowingListView.as_view('followinglist')
  34. site.add_url_rule('', view_func=topic_list_view)
  35. site.add_url_rule('/topic', view_func=topic_list_view)
  36. site.add_url_rule('/reply', view_func=reply_list_view)
  37. site.add_url_rule('/collect', view_func=collect_list_view)
  38. site.add_url_rule('/follower', view_func=follower_list_view)
  39. site.add_url_rule('/following', view_func=following_list_view)