123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #!/usr/bin/env python
- # -*- coding=UTF-8 -*-
- # **************************************************************************
- # Copyright © 2016 jianglin
- # File Name: views.py
- # Author: jianglin
- # Email: xiyang0807@gmail.com
- # Created: 2016-05-20 18:04:43 (CST)
- # Last Update:星期二 2016-6-14 23:20:14 (CST)
- # By:
- # Description:
- # **************************************************************************
- from flask import (Blueprint, render_template, request, g, url_for, redirect,
- abort)
- from maple import app
- from maple.helpers import is_num
- from maple.topic.models import Topic, Reply, Collect
- from maple.user.models import User
- site = Blueprint('user', __name__)
- @site.url_value_preprocessor
- def pull_user_url(endpoint, values):
- g.user_url = values.pop('user_url')
- user = User.query.filter_by(username=g.user_url).first()
- if user is None:
- abort(404)
- @site.url_defaults
- def add_user_url(endpoint, values):
- if 'user_url' in values or not g.user_url:
- return
- values['user_url'] = g.user_url
- @site.route('')
- def user():
- topics = Topic.query.join(Topic.author).filter(
- User.username == g.user_url).paginate(1,
- app.config['PER_PAGE'],
- error_out=True)
- data = {'type': 'topic', 'topics': topics}
- return render_template('user/user.html', **data)
- @site.route('/topics')
- def topic():
- page = is_num(request.args.get('page'))
- topics = Topic.query.join(Topic.author).filter(
- User.username == g.user_url).paginate(page,
- app.config['PER_PAGE'],
- error_out=True)
- data = {'type': 'topic', 'topics': topics}
- return render_template('user/user.html', **data)
- @site.route('/replies')
- def reply():
- page = is_num(request.args.get('page'))
- replies = Reply.query.join(Reply.author).filter(
- User.username == g.user_url).paginate(page,
- app.config['PER_PAGE'],
- error_out=True)
- data = {'type': 'reply', 'replies': replies}
- return render_template('user/user.html', **data)
- @site.route('/collects')
- def collect():
- page = is_num(request.args.get('page'))
- collects = Collect.query.paginate(page,
- app.config['PER_PAGE'],
- error_out=True)
- data = {'type': 'collect', 'collects': collects}
- return render_template('user/user.html', **data)
- @site.route('/following')
- def following():
- return redirect(url_for('mine.follow'))
- @site.route('/followers')
- def follower():
- page = is_num(request.args.get('page'))
- user = User.query.filter_by(username=g.user_url).first_or_404()
- followers = user.followers.paginate(page,
- app.config['PER_PAGE'],
- error_out=True)
- data = {'type': 'follower', 'followers': followers}
- return render_template('user/user.html', **data)
|