零基础走向django大神之路--后台分页手动完整版

1.html前端页面

student.html继承自base.html

student.html内容如下


{% extends ‘base.html’ %} {#出版社页面继承模板#}

{% block nav %}

  • 学员列表页

  • 图书列表页

  • 作者列表

  • {% endblock %}
    {#使用块进行填充#}
    {% block main %}









    序号 id 姓名 年龄

        {% for student in student_list %}
            <tr>
                <td>{{ forloop.counter }}</td>
                <td>{{ student.id }}</td>
                <td>{{ student.name }}</td>
                <td>{{ student.age }}</td>
    
            </tr>
        {% endfor %}
    
    
        </tbody>
    </table>
    

    {% endblock %}


    base.html的内容如下



    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="https://v3.bootcss.com/favicon.ico">
    
    <title>Dashboard</title>
    <!-- Bootstrap core CSS -->
    <link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
    <!-- Custom styles for this template -->
    <link href="/static/dashboard.css" rel="stylesheet">
    <link rel="stylesheet" href="/static/fontawesome/css/font-awesome.min.css">
    
    ------------------------------------- **俩个前端页面可以直接复制过去用**

    然后配置views.py文件
    from django.shortcuts import render
    from app import models
    import math

    def student_lst(request):
    # for i in range(200):
    # student=models.Student()
    # student.name=‘zs’+str(i)
    # student.age=str(i)
    # student.save()
    student_list=models.Student.objects.all()

    return render(request,'students.html',{'student_list':student_list})
    

    def student_lst1(request):
    page=request.GET.get(‘page’)
    print(page)
    if page==None:
    page=1
    page=int(page)
    start_num=(page-1)10
    end_num=page
    10
    student_list=models.Student.objects.all()[start_num:end_num]

    total_num = models.Student.objects.count()
    total_page_num=total_num/10
    total_page_num=math.ceil(total_page_num)
    if page > total_page_num:
        student_list=models.Student.objects.all()[0:10]
    
    
    if page<=3:
        start_page_num=1
        end_page_num=5
    else:
        start_page_num=page-2
        end_page_num=page+2
        if end_page_num>=total_page_num:
            end_page_num=total_page_num
    page_range=range(start_page_num,end_page_num+1)
    
    
    
    return render(request, 'students.html', {'student_list': student_list,'page_range':page_range})
    


    url.py文件
    from django.contrib import admin
    from django.urls import path
    from app import views
    urlpatterns = [
    path(‘admin/’, admin.site.urls),
    path(‘student_lst/’, views.student_lst),
    path(‘student_lst1/’, views.student_lst1),
    ]


    models.py文件
    from django.db import models

    class Student(models.Model):
    name=models.CharField(max_length=32)
    age=models.CharField(max_length=32)


    settings文件:

    STATIC_URL = ‘/static/’

    STATICFILES_DIRS=[
    os.path.join(BASE_DIR,‘static’)
    ]
    零基础走向django大神之路--后台分页手动完整版
    注意:这俩个页面是基于bootstrap和jquery的基础上,所以得引入这俩个包