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

相关文章
|
17天前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
103 45
|
6天前
|
存储 运维 安全
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
通过以上措施,可以保证Spring Boot项目的配置管理在专业水准上,并且易于维护和管理,符合搜索引擎收录标准。
18 2
|
1月前
|
IDE 关系型数据库 MySQL
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
这篇文章是关于如何创建一个Django框架,介绍Django的项目结构和开发逻辑,并指导如何创建应用和编写“Hello, World!”程序的教程。
38 3
Django学习一:创建Django框架,介绍Django的项目结构和开发逻辑。创建应用,编写主包和应用中的helloworld
|
18天前
|
安全 数据库 开发者
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第26天】本文详细介绍了如何在Django框架下进行全栈开发,包括环境安装与配置、创建项目和应用、定义模型类、运行数据库迁移、创建视图和URL映射、编写模板以及启动开发服务器等步骤,并通过示例代码展示了具体实现过程。
30 2
|
1月前
|
运维 Java Linux
【运维基础知识】掌握VI编辑器:提升你的Java开发效率
本文详细介绍了VI编辑器的常用命令,包括模式切换、文本编辑、搜索替换及退出操作,帮助Java开发者提高在Linux环境下的编码效率。掌握这些命令,将使你在开发过程中更加得心应手。
32 2
|
1月前
|
存储 运维 监控
实时计算Flink版在稳定性、性能、开发运维、安全能力等等跟其他引擎及自建Flink集群比较。
实时计算Flink版在稳定性、性能、开发运维和安全能力等方面表现出色。其自研的高性能状态存储引擎GeminiStateBackend显著提升了作业稳定性,状态管理优化使性能提升40%以上。核心性能较开源Flink提升2-3倍,资源利用率提高100%。提供一站式开发管理、自动化运维和丰富的监控告警功能,支持多语言开发和智能调优。安全方面,具备访问控制、高可用保障和全链路容错能力,确保企业级应用的安全与稳定。
40 0
|
3月前
|
运维 Devops 持续交付
自动化运维之路:从脚本到DevOps探索后端开发:从基础到高级实践
【8月更文挑战第28天】在数字化时代的浪潮中,企业对于IT运维的要求越来越高。从最初的手动执行脚本,到如今的自动化运维和DevOps实践,本文将带你领略运维的演变之旅。我们将探索如何通过编写简单的自动化脚本来提升效率,进而介绍DevOps文化的兴起及其对现代运维的影响。文章将为你揭示,通过持续集成、持续部署和微服务架构的实践,如何构建一个高效、可靠的运维体系。准备好让你的运维工作变得更加智能化和自动化了吗?让我们一起踏上这段旅程。 【8月更文挑战第28天】 本文旨在为初学者和有一定经验的开发者提供一个深入浅出的后端开发之旅。我们将一起探索后端开发的多个方面,包括语言选择、框架应用、数据库设计
|
3月前
|
负载均衡 应用服务中间件 网络安全
Django后端架构开发:Nginx服务优化实践
Django后端架构开发:Nginx服务优化实践
58 2
|
3月前
|
C++ Python
Django视图函数VS类视图:如何选择最适合你的开发方式?
【8月更文挑战第31天】本文对比了Django中的函数视图和类视图。函数视图直接处理HTTP请求和响应,灵活且易于维护,适用于简单业务逻辑;类视图基于Python类,提供更丰富的功能和更高的灵活性,适合处理复杂业务逻辑。选择哪种视图取决于具体需求,合理使用两者可帮助你构建高效且易维护的Django应用。
58 0
|
3月前
|
存储 缓存 关系型数据库
Django后端架构开发:缓存机制,接口缓存、文件缓存、数据库缓存与Memcached缓存
Django后端架构开发:缓存机制,接口缓存、文件缓存、数据库缓存与Memcached缓存
67 0