Django开发运维后台(四):几个ArchiveView的使用

简介:

TodayArchiveView, YearArchiveView, MonthArchiveView, DayArchiveView这类视图都是用来显示数据,用法也差不多,重点在于URL而已:

TodayArchiveView:搜索今天的数据

YearArchiveView:搜索指定年份的数据

MonthArchiveView:搜索指定月份的数据

DayArchiveView:搜索指定日的数据


建一张表来练习练习,用于存放检查数据库备份情况的Backup表

models.py

1
2
3
4
5
6
7
8
9
class  Backup(models.Model):
     server  =  models.ForeignKey(ServerList)
     checkdate  =  models.DateField()
     admin_statistics_status  =  models.IntegerField()
     game_status  =  models.IntegerField()
     gm_status  =  models.IntegerField()
     media_status  =  models.IntegerField()
     operation_status  =  models.IntegerField()
     runtime  =  models.DateTimeField()

views.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
class  BackupTodayArchive(TodayArchiveView):
     allow_empty  =  True
     allow_future  =  False
     context_object_name  =  'list'
     template_name  =  'backuplist.jinja.html'
     http_method_names  =  [u 'get' ,]
     model  =  Backup
     date_field  =  'checkdate'
     paginate_by  =  50
     make_object_list  =  True
 
 
class  BackupYearArchive(YearArchiveView):
     allow_empty  =  True
     allow_future  =  False
     context_object_name  =  'list'
     template_name  =  'backuplist.jinja.html'
     http_method_names  =  [u 'get' ,]
     model  =  Backup
     date_field  =  'checkdate'
     year_format  =  '%Y'
     paginate_by  =  50
     make_object_list  =  True
 
class  BackupMonthArchive(MonthArchiveView):
     allow_empty  =  True
     allow_future  =  False
     context_object_name  =  'list'
     template_name  =  'backuplist.jinja.html'
     http_method_names  =  [u 'get' ,]
     model  =  Backup
     date_field  =  'checkdate'
     year_format  =  '%Y'
     month_format  =  '%m'
     paginate_by  =  50
     make_object_list  =  True
 
class  BackupDayArchive(DayArchiveView):
     allow_empty  =  True
     allow_future  =  False
     context_object_name  =  'list'
     template_name  =  'backuplist.jinja.html'
     http_method_names  =  [u 'get' ,]
     model  =  Backup
     date_field  =  'checkdate'
     year_format  =  '%Y'
     month_format  =  '%m'
     day_format  =  '%d'
     paginate_by  =  50
     make_object_list  =  True

date_field:这个参数要指定model里面的日期型字段,是视图按这个字段过滤结果的

year_format month_format day_format:这几个是匹配URL捕捉的格式

make_object_list:我也不知道啥意思


urls.py

1
2
3
4
     url(r '^backuplist/$' , BackupTodayArchive.as_view(), name = 'backuplist' ),
     url(r 'backuplist/(?P<year>\d{4})/$' , BackupYearArchive.as_view()),
     url(r 'backuplist/(?P<year>\d{4})/(?P<month>\d{2})/$' , BackupMonthArchive.as_view()),
     url(r 'backuplist/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d{2})/$' , BackupDayArchive.as_view()),

这样就完成一个按日期显示内容的功能:

显示当天数据:http://127.0.0.1/saadmin/backuplist/

显示2014年数据:http://127.0.0.1/saadmin/backuplist/2014/

显示2014年7月份的数据:http://127.0.0.1/saadmin/backuplist/2014/07/

显示2014年7月5日的数据:http://127.0.0.1/saadmin/backuplist/2014/07/05/


感觉挺好玩的,这几个视图。。

本文转自运维笔记博客51CTO博客,原文链接http://blog.51cto.com/lihuipeng/1438479如需转载请自行联系原作者


lihuipeng

相关文章
|
2月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的社区养老管理系统
基于python+django+vue.js开发的社区养老管理系统
93 1
|
1月前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
8天前
|
Python
Django开发——配置环境
Django开发——配置环境
|
23天前
|
前端开发 测试技术 数据库
【python】为什么使用python Django开发网站这么火?
【python】为什么使用python Django开发网站这么火?
|
1月前
|
人工智能 JSON 运维
AI大模型运维开发探索第三篇:深入浅出运维智能体
大模型出现伊始,我们就在SREWorks开源社区征集相关的实验案例。玦离同学提供了面向大数据HDFS集群的智能体案例,非常好地完成了运维诊断的目标。于是基于这一系列的实验和探索。本文详细介绍智能体在运维诊断中的应用探索。
|
2月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
56 0
|
2月前
|
前端开发 关系型数据库 MySQL
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
基于python+django+vue.js开发的医院门诊管理系统/医疗管理系统
45 2
|
2月前
|
数据库 开发者 Python
Python在Web开发中的应用:Flask与Django框架介绍与实践
Python在Web开发中的应用:Flask与Django框架介绍与实践
|
2月前
|
开发框架 缓存 数据库
Python中的Web开发:Flask与Django的比较与选择
Python中的Web开发:Flask与Django的比较与选择
206 0
|
2月前
|
Kubernetes Linux 开发工具
容器开发运维人员的 Linux 操作机配置优化建议
容器开发运维人员的 Linux 操作机配置优化建议