零基础走向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=page10
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’)
]
注意:这俩个页面是基于bootstrap和jquery的基础上,所以得引入这俩个包