models.py
from django.db import modelsclass Host(models.Model): hostname=models.CharField(max_length=256) ip=models.GenericIPAddressField()
index.html 模版
主机信息表
id | hostname | ip |
{ {item.id}} | { {item.hostname}} | { {item.ip}} |
当前页面共有:{ {count}}条信息
views.py
如果不考虑分页,写死只取5条数据,代码如下
注意:models.Host.objects.all()[0:5] # 0 代表第1条数据,5代表从索引0开始,第5条数据[0:5] 为 Django 中 QuerySet 封装,Flask,tornado 不确定可以使用
from django.shortcuts import renderfrom app01 import modelsdef index(request): data=models.Host.objects.all()[0:5] #获取数据库从头开始共5条数据,一个QuerySet 对象 count=data[0:5].count() #统计条数 #print(type(data)) return render(request,'index.html',{'data':data,'count':count})
分页原理
另外一种方法为:end=start + count
如果设置动态分页 ,则修改 views.py
from django.shortcuts import renderfrom app01 import modelsdef index(request,page): #设置page参数,第几页 django,从浏览器地址栏 获取这个参数 count=5 #每页显示 5条数据 start=(int(page)-1)*count #开始 end=int(page)*count #结束 data=models.Host.objects.all()[start:end] #每页显示的数据,-----从第 'start'条开始 ,第 'end'条结束 return render(request,'index.html',{'data':data,'count':count})
注意:浏览器得到的参数类型为 字符串,做公式计算需要 转换成 int
url.py 配置
urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^index/(\d+)/$',views.index),]