Django--路由的写法name的使用、修改页面、分页、图片、富文本、修改index页面

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_44863429/article/details/100903225

路由的写法name的使用

在这里插入图片描述

修改页面

修改文章性别属性

在这里插入图片描述

choices属性:由元组组成的一个可迭代对象,用来给字段提供可选的值

使用

在这里插入图片描述

修改个人日志

视图

在这里插入图片描述

模板

在这里插入图片描述

增加详情页面

路由:

在这里插入图片描述

视图:

在这里插入图片描述

模板:使用的about页面进行修改

在这里插入图片描述

分页

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

一般分为两种:

  • 前端分页
    • 后端将数据一次性全部提供给前端,前端通过js进行分页
    • 优点:简单直接
    • 缺点:首先传输数据需要时间,数据库的压力大
  • 后端分页
    • 在数据库查询时候,指定查询范围,类似于sql中的limit,ORM中的切片[1:10]

Django中提供的问也插件,paginator专门提供分页功能,在django1.4版本之后才有

增加多条数据

在这里插入图片描述

分页提供的方法

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 2 of 21>
    for one in page_obj:
        print(one.content)

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

分页的基本实现

路由

在这里插入图片描述

视图

在这里插入图片描述

模板

在这里插入图片描述

前端页面展示页数

在这里插入图片描述

视图

在这里插入图片描述

路由

在这里插入图片描述

模板

在这里插入图片描述

图片

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

安装pillow

pip install pillow

配置

在这里插入图片描述

修改模型

在这里插入图片描述

数据迁移

在这里插入图片描述

使用图片

在这里插入图片描述

富文本

Ckeditor自重成熟的富文本编辑器,于Django结合的比较好

安装

在这里插入图片描述

配置

在这里插入图片描述

在这里插入图片描述

路由

在这里插入图片描述

使用

模型

导包

在这里插入图片描述

在这里插入图片描述

admin添加数据

前端展示

在这里插入图片描述

在这里插入图片描述

修改index页

模型中增加字段

在这里插入图片描述

数据迁移

ORM操作

在这里插入图片描述

修改视图

在这里插入图片描述

修改页面index.html

{# 继承父类模板 #}
{% extends 'base.html' %}

{% block content %}
  <div class="jztop"></div>
  <div class="container">
    <div class="bloglist f_l">
        {% for one in article %}
            <h3><a href="/articledetails/{{ one.id }}">{{ one.title }}</a></h3>
            <figure><img src="/static/{{ one.picture }}" alt="{{ one.title }}"></figure>
            <ul>
                <p> {{ one.description | safe }}</p>
                <a title="{{ one.title }}" href="/articledetails/{{ one.id }}" target="_blank" class="readmore">阅读全文&gt;&gt;</a>
            </ul>
            <p class="dateview"><span>{{ one.date }}</span><span>作者:{{ one.author }}</span><span>个人博客:[<a href="/jstt/bj/">{{ article.type.first }}</a>]</span></p>
        {% endfor %}


    </div>
    <div class="r_box f_r">
      <div class="tit01">
        <h3 class="tit">关注我</h3>
        <div class="gzwm">
          <ul>
            <li><a class="email" href="#" target="_blank">我的电话</a></li>
            <li><a class="qq" href="#mailto:[email protected]" target="_blank">我的邮箱</a></li>
            <li><a class="tel" href="#" target="_blank">我的QQ</a></li>
            <li><a class="prize" href="#">个人奖项</a></li>
          </ul>
        </div>
      </div>
      <!--tit01 end-->

      <div class="tuwen">
        <h3 class="tit">图文推荐</h3>
        <ul>
            {% for tuwen in recommend_article %}
                <li><a href="/articledetails/{{ tuwen.id }}"><img src="/static/{{ tuwen.picture }}"><b>{{ tuwen.title }}</b></a>
                    <p><span class="tulanmu"><a href="articledetails/{{ tuwen.id }}">{{ tuwen.type.first }}</a></span><span class="tutime">{{ tuwen.date }}</span></p>
                </li>
            {% endfor %}
        </ul>
      </div>
      <div class="ph">
        <h3 class="tit">点击排行</h3>
        <ul class="rank">
            {% for one in article %}
                <li><a href="/articledetails/{{ one.id }}" title="{{ one.title }}" target="_blank">{{ one.title }}</a></li>
            {% endfor %}
        </ul>
      </div>
      <div class="ad"> <img src="/static/images/03.jpg"> </div>
    </div>
  </div>
  <!-- container代码 结束 -->
  <div class="jzend"></div>
{% endblock %}

猜你喜欢

转载自blog.csdn.net/weixin_44863429/article/details/100903225