zoukankan      html  css  js  c++  java
  • 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 %}

  • 相关阅读:
    012_DRC检查与处理
    深度系统20.3中亿图图示任务栏名称显示乱码
    deepin20.3+nvidia460.27+cuda11.2+cudnn8.1.1+anconda3.2021.11+paddle2.1.2
    C++中使用DOM写XML文档
    理解lvalue和rvalue
    C++/CLI与C#常用语法对比
    VC++ MSXML创建XML文件以及对XML文档解析
    Stack overflow 编译能通过,运行时出现Stack overflow
    于typedef的用法总结
    VC2008操作Excel2007总结
  • 原文地址:https://www.cnblogs.com/Py-king/p/10568058.html
Copyright © 2011-2022 走看看