首页 > 其他分享 > 周期视图WeekArchiveView

周期视图WeekArchiveView

时间:2023-06-04 10:00:46浏览次数:56  
标签:week 周期 WeekArchiveView get 周数 视图 WeekMixin 定义

2023.6.4

WeekArchiveView是在数据表筛选某个日期字段某年某周的所有的数据,总周数是将一年的总天数除以7所得的,数据默认以升序的方式排序显示,年份和周数的筛选范围都是由路由变量提供的

                          周期视图WeekArchiveView_html


在一年中,无论是平年还是闰年,一共有52周,而且每年同一个周数的日期是各不相同的。如果要对数据表的数据生成周报表,就需要根据当前年份的周数来计算相应的日期范围,这样可以大大降低开发效率。为此,Django提供了视图类WeekArchiveView,只需提供年份和周数即可在数据表里筛选相应的数据信息。整个设计共继承10个类。除了类WeekMixin之外,其他类的属性和方法已详细介绍过了,本小节不再重复讲述,我们只列举类WeekMixin定义的属性和方法,说明如下:

●week_format:由WeekMixin定义,默认值为%U,这是设置周数的计算方式,可选值为%W或%U,如果值为%W,周数就从星期一开始计算,如果值为%U,周数就从星期天开始计算。●week:由WeekMixin定义,设置默认周数,如果没有设置属性值,就从路由变量week里获取。

●get_week_format():由WeekMixin定义,获取属性week_format的值。

●get_week():由WeekMixin定义,获取属性week的值。

●get_next_week():由WeekMixin定义,调用_get_next_week()来获取下一周的开始日期。●get_previous_week():由WeekMixin定义,获取上一周的开始日期。

●_get_next_week():由WeekMixin定义的受保护方法,返回下一周的开始日期。●_get_current_week():由WeekMixin定义的受保护方法,返回属性week所设周数的开始日期。

●_get_weekday():由WeekMixin定义的受保护方法,获取属性week所设周数的工作日。

                          周期视图WeekArchiveView_hive_02



                          周期视图WeekArchiveView_Django_03

路由index定义路由变量year和week,它们只能支持整型的数据格式,并且变量名是固定的,否则视图类WeekArchiveView无法从路由变量里获取年份和周数。

                          周期视图WeekArchiveView_hive_04


视图类index继承父类WeekArchiveView,它共设置了10个属性,每个属性的设置与其他视图类index大致相同,唯独将属性month_format改为week_format

                          周期视图WeekArchiveView_Django_05


模板文件index.html的模板上下文也与视图类MonthArchiveView提供的模板上下文相似,只不过上一周和下一周的上下文改为previous_week和next_week。综上所述,视图类WeekArchiveView和MonthArchiveView在使用上存在相似之处


                          周期视图WeekArchiveView_hive_06


综上所述,视图类WeekArchiveView和MonthArchiveView在使用上存在相似之处,也就是说数据表index_personinfo的大部分数据集中在2018年9月,这个日期的周数为38。运行MyDjango项目,在浏览器上访问127.0.0.1:8000/2018/38.html,

标签:week,周期,WeekArchiveView,get,周数,视图,WeekMixin,定义
From: https://blog.51cto.com/576642026/6410016

相关文章

  • 【Python】如何在FastAPI中使用UUID标记日志,以跟踪一个请求的完整生命周期
    为什么要使用uuid标记日志?在分布式系统中,一个请求可能会经过多个服务,每个服务都会生成自己的日志。如果我们只使用普通的日志记录,那么很难将这些日志串联在一起,以至难以跟踪一个请求的完整生命周期。如果能够使用uuid标记日志,为每个请求生成一个唯一的uuid,且这个日志可以在不同......
  • 日期筛选视图-MonthArchiveView
    2023.6.3日期筛选视图是根据模型里的某个日期字段进行数据筛选的,然后将符合结果的数据以一定的形式显示在网页上。简单来说,在列表视图ListView或详细视图DetailView的基础上增加日期筛选所实现的视图类●MonthArchiveView是在数据表筛选某个日期字段某年某月的所有的数据,默认以升......
  • 《面试1v1》SpringBean生命周期
    我是javapub,一名Markdown程序员从......
  • 单周期CPU模型机下载【FPGA模型机课程设计】
    模型机下载【FPGA模型机课程设计】前言推荐单周期CPU模型机下载安排测试与结果5.7.2模型机下载FPGA设计代码设计MIOCIOIO1SoCInstMem附录0框架EMIOC接口FIO外设IO1测试MIOC分流9InstMem指令存储器10SoC顶层最后前言2023-5-2707:55:09周六早上睡不着了起来学习推荐5模......
  • 删除视图DeleteView
    视图类DeleteView的使用方法与视图类UpdateView有相似之处,但两者的父类继承关系有所差异。在源码文件里分析视图类DeleteView的定义过程,以流程图的形式表示类的继承关系视图类DeleteView只能删除单条数据,路由变量为模型主键提供查询范围,因为模型主键具有唯一性,所以通过主键查询能精......
  • Vue修改数组、对象并且触发视图更新的方法以及原理
    一、数组 items:['a','b','c'];//一个普通的数组this.items[1]='x';//修改已有项this.items[3]='d';//新增一项this.item.length=2;//修改数组的长度//一个对象数组msg:[{id:1,selected:true,title:'aaa',},{i......
  • 从生命周期角度聊聊2B与2C
    1.B和C,从广义生命的角度看,B(企业、公司)也是个生命体,只不过体量略大,相对C的生命周期会长一些,变化会慢一些2.做2B业务,因为上一条导致市场、需求的变化比2C的业务略慢,于是,对应的产品生命周期也更长,你想想企业软件和网游的对比就好了3.以上特点导致,2B更看重长期的“战略”,而2C更看重......
  • 产品生命周期的不同尺度
    最近在学习产品生命周期的话题,因为产品这个词的不确定性,所以,说它的生命周期,我觉得也要定义是在哪个尺度上。时空尺度,时间上可以从天、周、月到年,空间上可以从小团队、公司、集团公司到行业,简单的分为从微观到宏观有五个尺度。功能需求、设计、开发、测试、发布。这是最微观的轮回,下......
  • MySQL之视图,索引,存储过程,触发器--实操
    一.视图什么是视图?视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含系列带有名称的列和行数据。行和列数据来自定义视图的查询所引用的表,并且在引用视图时动态生成。简单的来说视图是由select结果组成的表。视图的出现其实优化了MySQL对用户权限的管理,我们在以......
  • uniapp 组件中使用页面的生命周期(vue2)
    用于直接在组件中使用onLoad,onBackPress等因为之前在写App的时候有许多弹窗,希望可以在有弹窗的时候先关闭弹窗,没有弹窗在执行返回事件,因此需要在页面onBackPress里面写很多判断,因此找了一些方法,写了可以直接在组件中调用页面生命周期的方法!使用mixinthis.$children去循环查询......