Django(六):MVC&MVT +分页+上传图片安装pillow+富文本Ckeditor

MVC

M 封装了对数据的访问,提供数据的支持

V view(视图),用于封装结果,提供页面支持

C 控制器,用来接收用户的请求,处理请求,返回响应

MVT

M 和MVC中的M相同

V view(视图),和MVC中的C相似,用于接收用户请求,返回响应

T template,和MVC中的V相似,提供一个页面的支持

分页

分页:一个页面显示太多数据,效果不好需要分页处理

一般分为两种:

  • 前端分页

    • 后端将数据一次性全部提供给前端,前端通过js进行分页

    • 优点:简单直接

    • 缺点:传输数据需要时间,对数据库压力大

  • 后端分页

    • 在数据库查询时,指定查询范围,类似于sql中的limit,ORM中的切片。

django中提供了分页插件,paginator,专门负责提供分页功能,在django1.4版本之后才有。

增加多条数据

分页提供的方法

from django.core.paginator import Paginator
def fytest(request):
    ## 使用django自带分页 Paginator 的时候 原数据要增加排序属性
    article = Article.objects.all().order_by("-date")
    # print(article)
    #  每次显示 5条数据
    paginator = Paginator(article,5)   # 设置每一页显示多少条,返回一个Paginator 对象
    # print (paginator.count)    ##   返回内容总条数
    # print(paginator.page_range)   ## 可迭代的页数
    # print(paginator.num_pages)    ## 最大页数

    page_obj= paginator.page(2)
    print (page_obj)   ##   可以有的页数的数据  表示的当前对象  <Page 20 of 21>
    for one in page_obj:
        print (one.content)

    # print(page_obj.number)   ## 当前页数
    # print(page_obj.has_next())   ## 有没有下一页 返回值  是True 或者 Flase
    # print(page_obj.has_previous())  ## 判断是否有上一页   是True 或者 Flase
    # print(page_obj.has_other_pages())  ## 判断是否有其他页   是True 或者 Flase
    # print(page_obj.next_page_number())  # 返回 下一页的页码   如果没有下一页 抛出异常
    # print(page_obj.previous_page_number())  ## 返回上一页的页码

    return HttpResponse("分页功能测试")

分页的基本实现

视图

模板

前端页面展示指定页数

路由

模板

图片

在django开发中,除了静态文件,还有媒体文件(视频,声音,图片),将文件上传到服务器上面,首先需要一个文件处理模块(例如:PIL(python2版本) 和 pillow 一样,作用就是处理图片的,参与人工智能,数据分析),其次需要文件的存储位置。

安装 pillow

pip install pillow

配置

修改模型

数据迁移

使用图片

 

站点管理

 

富文本

Ckeditor 一种成熟的富文本编辑器,于django结合的比较好

安装

配置

settings.py

路由

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值