django——入门5

一、补充内容

一、Templates 过滤器

1、什么是过滤器

​ 写在模板中(即 html 中),属于 Django 模板语言;

​ 可以修改模板中的变量,从而显示不同的内容;

2、怎么使用过滤器

​ {{ value | filter }}

​ 例子:{{ list_nums | length }}

​ 过滤器可叠加:{{ value | fither1 | fither2 | fither3 | … }}

3、具体操作

<1>、先修改 edit_page.html

​ 去掉 if : django模板如果出现了一些不存在的变量,它是不会报错的,只会给出一个空值,即空字符串;

django——入门5

操作后,对 修改文章 与 新建文章 这两个功能都不影响;

但我们的 aritcle.id 在新建文章的时候必须是 0 ,如果传了一个空字符串回去一定会报错;

例如:新建文章时提交后会报错

django——入门5
django——入门5
django——入门5

<2>、添加过滤器

default:‘默认值’

django——入门5

<3>、效果

django——入门5
django——入门5
django——入门5

<4>、作用

大大减少工作量和代码量

4、更多的Django内建过滤器

旧版: http://docs.djangoproject.com/en/1.10/ref/templates/builtins/#ref-templates-builtins-filters

网上版本: http://shouce.jb51.net/django-chinese-docs-18/4_2_2_Built-in%20tags%20and%20filters.html

https://docs.djangoproject.com/en/3.0/contents/

二、Django Shell

1、什么是Django Shell?

​ 它是一个 Python 的交互式命令行程序;

​ 它自动引入了我们的项目环境;

​ 我们可以使用它与我们的项目进行交互;

2、如何使用 Django Shell(用命令行)?

​ 启动:python manage.py shell

​ from blog.models import Article

​ Article.objects.all()

​ 退出:quit() / exit

django——入门5

django——入门5

​ 列表只显示了标题的原因:

django——入门5

3、作用

​ 我们可以使用 Django Shell 来进行一些调试的工作;

​ 用来测试未知的方法;

例如:Article.objects.all().values()

​ 当我中的它可以返回对象所有的值,但不确定它返回的值是我们格式,那么我就可以先再 Django shell 中先试一下再使用;

django——入门5

发现它返回了一个列表,列表里面是一个一个字典,每一个字典包含了一个所有对象的所有属性,以键值对的形式;

然后我们就可以有效的使用它了;

三、Admin增强

1、想要在列表内显示更对多的内容或者更多的分类

django——入门5

<1>、改变 admin.py 内 Article类 的注册方式

​ (1)、创建 admin配置类

​ class ArticleAdmin(admin.ModelAdmin)

​ 注册:admin.site.register(Article, ArticleAdmin)

django——入门5

刷新浏览器页面没有报错就证明写对了;

(2)、显示其他字段

在刚才的配置类里面加上一条属性:list_display = ( ‘title’, ‘content’ )

list_display 同时支持 tuple 和 list

注意:这里的字段名必须是字符串,而且要和 models 里面的字段名写的一模一样;

django——入门5

刷新页面:

django——入门5

可以点击 TITLE 或者 CONTENT 对列表进行排序:

django——入门5

2、先修改 article 类

<1>、添加一个发布日期:

​ pub_time = models.DateTimeField(auto_now=True)

django——入门5

记住要把字段添加到 admin.py 里面

django——入门5

<2>、命令行

执行一个数据移植的过程

​ python manage.py makemigration

​ python manage.py migrate

django——入门5

刷新页面:

django——入门5

<3>、想要在 admin 中修改日期

django——入门5

记住修改后要再次进行数据移植;

django——入门5

移植后要再次启动程序;

python manage.py runserver

django——入门5

将日期修改为昨天:
django——入门5
django——入门5

3、过滤器

​ list_filter = ( ‘pub_time’, )

​ 注意:tuple 后面要加一个逗号

django——入门5

功能:

django——入门5

4、更多的详见官方文档

​ 旧版:https://docs.djangoproject.com/en/1.10/ref/contrib/admin/

二、课程总结

课程回顾

1、课程介绍

​ 学习目标及内容;

​ 课程基础知识要求;

2、课前准备

​ 介绍Django;

​ 通过浏览器浏览网页的基本原理;

3、开发环境搭建

​ 安装Python;

​ 安装Django;

​ 开发工具介绍;

4、创建项目及应用

​ 创建项目;

​ 创建应用;

​ 创建第一个页面(响应);

5、第一个Template

​ 重新配置URL;

​ 介绍Templates;

​ 开发第一个Template;

6、Models

​ 介绍Models;

​ 编写博客的Model;

​ 将数据呈现在页面上;

7、Admin

​ 创建超级用户;

​ 配置Admin;

​ 使用Admin修改数据库;

8、完善博客

​ 博客主页面;

​ 博客内容页面;

​ 博客编写页面;

9、补充内容

​ Templates 过滤器;

​ Django shell;

​ Admin 增强;