• 2019.03.20 mvt,Django分页


    MVT模式

        MVT各部分的功能:

      M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
       
      V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回响应。
       
      T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。






     Django分页

    from django.core.paginator import Paginator, PageNotAnInteger, EmptyPage


    def page_view(request):
    num = request.GET.get('num',1)
    num = int(num)

    movies = Movie.objects.all()
    paginator = Paginator(movies,20)

    try:
    t_per_page = paginator.page(num)#获取当前页码的记录
    except PageNotAnInteger:#如果用户输入的页码不是整数时,显示第1页的内容
    t_per_page = paginator.page(1)
    except EmptyPage:#如果用户输入的页数不在系统的页码列表中时,显示最后一页的内容
    t_per_page = paginator.page(paginator.num_pages)

    #每页开始页码
    begin = (num-int(math.ceil(10.0/2)))
    if begin<1:
    begin = 1

    # 每页结束页码
    end = begin+9
    if end >pager.num_pages:
    end = pager.num_pages

    if end <=10:
    begin = 1
    else:
    begin = end -9

    pagelist = range(begin,end+1)

    return render(request,'movie2.html',{'paginator':paginator,'t_per_page':t_per_page,'pagelist':pagelist})

    <div id="pagebar">
    {% if t_per_page.has_previous %}
    <a href="/movie/page/?num={{ t_per_page.previous_page_number }}">上一页</a>
    {% endif %}
    {% for n in paginator.page_range %}
    {% if n <= 10 %}
    <a href="/movie/page/?num={{ n }}">{{ n }}</a>
    {% endif %}


    {% endfor %}

    {% if t_per_page.has_next %}
    <a href="/movie/page/?num={{ t_per_page.next_page_number }}">下一页</a>
    {% endif %}

  • 相关阅读:
    Java Web总结十Jsp
    当前结果
    QFontMetrics的一个问题
    设想的用户交互流程
    多视图工作
    改进函数、变量的表示
    接口测试Session/Cookie笔记(二)
    接口测试笔记(一)
    创业公司心力交瘁
    禅道BUG管理工具使用链接存储
  • 原文地址:https://www.cnblogs.com/Py-king/p/10568058.html
Copyright © 2020-2023  润新知