1)新增或编辑博客内容
2)博客文章较多 全部加载过慢-分页加载
同时包含shell模式、模型操作、模板标签、分页器
3.模型新增对象
from blog.models import Blog
blog = Blog()
blog.title = 'xxx'
...
blog.save()
具体指令:
from blog.models import Blog
dir()
Blog.objects.all()
Blog.objects.count()
Blog.objects.all().count()
blog = Blog()
dir()
Blog.objects.all()
blog.title = "shell模式下的第一篇"
blog.content = "xxxxxxx"
from blog.models import BlogType
BlogType.objects.all()[0]
blog_type = BlogType.objects.all()[0]
blog.blog_type = blog_type
from django.contrib.auth.models import User
User.objects.all()
user = User.objects.all()[0]
blog.author = user
blog.save()
Blog.objects.all()
dir(blog)
blog.last_update_time
shell 命令行模式添加博客
1、python manage.py shell
2、for 循环执行新增博客代码
# 生成30篇博客内容
for i in range(1,31):
blog = Blog()
blog.title = "for %s" %i
blog.blog_type = blog_type
blog.author = user
blog.save()
Blog.objects.all().count() #-->37
实现分页功能:
定义一个排序信息类在models.py中;按照
class Meta:
ordering = ['-created_time']
同步数据库
在shelle 中进行分页
from django.core.paginator import Paginator
dir() # -->['Blog', 'BlogType', 'Paginator', 'User', '__builtins__', 'blog', 'blog_type', 'i', 'user']
# del i # 移除不必要的内容如i
from blog.models import Blog
blogs = Blog.objects.all()
blog.count() # 37
paginator = Paginator(blogs,10)
paginator
dir(paginator)
paginator.__doc__
paginator.count # 34
paginator.num_pages # 分出来4页
paginator.page_range # range(1,5)
page1 = paginator.page(1)
page1
dir(page1)
page1.object_list
page1.object_list.count()
# 也可以用help(page1.count)查询方法
设计分页样式:
前端:发送请求,请求打开具体分页内容
后端:处理请求,返回具体分页内容响应请求
localhost:8000/blog/?page=1能够返回第一页的十条数据,其他同理;这里用到了get请求
现在还却页码:在blog_list.html中增加样式,从bootstrap中引入样式代码:
现在优化,如果当前是第一页最好去掉上一页功能按钮,同理最后一页,判断是否有上一页和下一页来执行:
两处修正:
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。