博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BBS论坛(二十八)
阅读量:5941 次
发布时间:2019-06-19

本文共 2903 字,大约阅读时间需要 9 分钟。

28.1.帖子分页功能完成

(1)manage.py

通过命令生成100个帖子,用于测试

@manager.commanddef create_test_post():    for x in range(1,100):        title='我是标题%s'%x        content='我是内容,我的编号是%s'%x        board=BoardModel.query.first()        author=FrontUser.query.first()        post=PostModel(title=title,content=content)        post.board=board        post.author=author        db.session.add(post)        db.session.commit()    print('测试帖添加成功')

(2)front/views.py

@bp.route('/')def index():    banners = BannerModel.query.order_by(BannerModel.priority.desc()).limit(4)    boards = BoardModel.query.all()    #获取当前页码数    page = request.args.get(get_page_parameter(), type=int, default=1)    # 显示10条帖子    start = (page - 1) * config.PER_PAGE    end = start + config.PER_PAGE    posts = PostModel.query.slice(start, end)    # bs_version=3:表示用Bootstrap v3版本    pagination = Pagination(bs_version=3,page=page,total=PostModel.query.count(),                            outer_window = 0, inner_window = 2)    context = {        'banners':banners,        'boards':boards,        'posts':posts,        'pagination':pagination,    }    return render_template('front/front_index.html',**context)

(3)front_index/html

{
{ pagination.links }}

 

28.2.板块过滤功能完成

(1)front_index.html

{% if current_board %}
所有版块 {% else %}
所有版块 {% endif %} {% for board in boards %} {% if board.id==current_board %}
{
{ board.name }}
{% else %}
{
{ board.name }}
{% endif %} {% endfor %}

(2)front/views.py

@bp.route('/')def index():    board_id = request.args.get('bd', type=int, default=None)    # 获取当前页码数    page = request.args.get(get_page_parameter(), type=int, default=1)    banners = BannerModel.query.order_by(BannerModel.priority.desc()).limit(4)    boards = BoardModel.query.all()    # 显示10条帖子    start = (page - 1) * config.PER_PAGE    end = start + config.PER_PAGE    posts = None    total = 0    if board_id:        query_obj = PostModel.query.filter_by(board_id=board_id)        posts = query_obj.slice(start,end)        total = query_obj.count()    else:        posts = PostModel.query.slice(start, end)        total = PostModel.query.count()    # bs_version=3:表示用Bootstrap v3版本    pagination = Pagination(bs_version=3,page=page,total=total,outer_window = 0, inner_window = 2)    context = {        'banners':banners,        'boards':boards,        'posts':posts,        'pagination':pagination,        'current_board':board_id      #把当前板块id传到前端,前端添加“active”样式    }    return render_template('front/front_index.html',**context)

 

转载地址:http://vemtx.baihongyu.com/

你可能感兴趣的文章
Kotlin教程(九)泛型
查看>>
浏览器中唤起native app || 跳转到应用商城下载(二) 之universal links
查看>>
网站性能调优开发工具: Lighthouse, Puppeteer 以及进阶部分丨 Google 开发者大会 2018...
查看>>
33 个 JavaScript 核心概念系列(三): 显式 (名义) 与 隐式 (鸭子)类型转换
查看>>
RocketMQ(六):namesrv再探
查看>>
入门Python神经机器翻译,这是一篇非常精简的实战指南
查看>>
Android LayoutInflater 源码解析
查看>>
如何给localStorage设置一个过期时间?
查看>>
java8-06-自定义Collector-JoinCollector
查看>>
把现有的typesctipt+react项目接入到electron
查看>>
【Docker实战之入门】Dockerfile详细分析:构建docker镜像(4)构建动态网站WordPress...
查看>>
小程序二次贝塞尔曲线,购物车商品曲线飞入效果
查看>>
微信小程序
查看>>
常用的正则表达式分享
查看>>
Spring、Spring Boot和TestNG测试指南 - 测试关系型数据库
查看>>
2017-07-19 前端日报
查看>>
GraphQL 进阶: 基于Websocket的实时Web应用开发
查看>>
直播卡顿原因详解及优化
查看>>
Audio: 如果你愿意一层一层剥开我的心
查看>>
SSE eventSource简介
查看>>