Exemple #1
0
def index():
    # 获取查询条件
    page = request.args.get('page', 1, type=int)
    classify = request.args.get('classify')
    order = request.args.get('order', 'desc', type=str)
    course_type = request.args.get('type', 'other')
    # 基础查询
    query = Course.query.filter(Course.status == 1)
    if classify and classify != '不限':
        query = query.join(Classify).filter(Classify.name == classify)
    if course_type:
        query = Course.filter_type(query, course_type)
    if order == 'desc':
        query = query.order_by(Course.newstime.desc(), Course.id.desc())
    else:
        query = query.order_by(Course.newstime, Course.id.desc())

    pagination = query.paginate(page,
                                per_page=current_app.config['INDEX_PAGE'],
                                error_out=False)
    pers = [per.to_json() for per in pagination.items]

    user_info = {}
    if current_user.is_user:
        user_info = current_user.to_json()
    classifies = Classify.all_to_list()

    return render_template('main/index.html',
                           pagination=pagination,
                           pers=pers,
                           classify=classify,
                           course_type=course_type,
                           order=order,
                           page_title=current_app.config['SYSTEMNAME'],
                           classifies=classifies,
                           user_info=user_info)