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

image.png
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

image.png
实现分页功能:
image.png

定义一个排序信息类在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请求
image.png
image.png

现在还却页码:在blog_list.html中增加样式,从bootstrap中引入样式代码:
image.png
image.png
现在优化,如果当前是第一页最好去掉上一页功能按钮,同理最后一页,判断是否有上一页和下一页来执行:
image.png

两处修正:
image.png

image.png


笨小孩
20 声望3 粉丝

你,要怎样度过这一生?有的人二十岁已经死了,有的人七十岁还在发现生命的可能,有人终其一生,不知道自己要的是什么;有人简单执拗,终其一生;忠于自我未必有结果,坚持努力也不一定换来成功,但有天,回望过...