0
点赞
收藏
分享

微信扫一扫

周期视图WeekArchiveView

sullay 2023-06-04 阅读 102

2023.6.4

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

                          周期视图WeekArchiveView_Django


在一年中,无论是平年还是闰年,一共有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_hive_03

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

                          周期视图WeekArchiveView_Django_04


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

                          周期视图WeekArchiveView_hive_05


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


                          周期视图WeekArchiveView_html_06


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

举报

相关推荐

0 条评论