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

相关文章
|
20小时前
|
数据库 开发者 Python
从菜鸟到大神,Django/Flask 让你秒变 Web 开发界的‘头号玩家’!
【7月更文挑战第12天】在Python Web开发中,Django和Flask框架各具特色。Flask轻量灵活,适合快速搭建简单应用,如博客,基本代码仅需几行。Django则功能全面,适用于复杂项目,如电商网站,内置ORM和管理后台。两者都助力开发者从新手进阶。选择取决于项目需求和个人偏好。学习和实践这两个框架,能助你成为Web开发专家。
|
16天前
|
JSON 前端开发 API
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
Django API开发实战:前后端分离、Restful风格与DRF序列化器详解
|
16天前
|
前端开发 数据库 开发者
构建高效后端:Django框架在Web开发中的深度解析
**Django框架深度解析摘要** Django,Python的高级Web框架,以其快速开发和简洁设计备受青睐。核心特性包括Model-Template-View架构、ORM、模板引擎和URL路由。通过创建博客应用示例,展示从初始化项目、定义模型、创建视图和URL配置到使用模板的流程,体现Django如何简化开发,提高效率。其强大功能如用户认证、表单处理等,使Django成为复杂Web应用开发的首选。学习Django,提升Web开发效率。【6月更文挑战第24天】
51 1
|
7天前
|
运维 监控 大数据
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
部署-Linux01,后端开发,运维开发,大数据开发,测试开发,后端软件,大数据系统,运维监控,测试程序,网页服务都要在Linux中进行部署
|
18天前
|
缓存 运维 Java
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
Spring运维之boot项目多环境(yaml 多文件 proerties)及分组管理与开发控制
19 0
|
2月前
|
前端开发 JavaScript 数据库
110-Django开发社交聊天网站
该内容描述了一个聊天网站的功能模块和技术实现要点,主要包括: 1. 用户管理:用户注册、登录/登出、信息编辑和密码管理。 2. 权限管理:角色定义、权限分配和访问控制。 3. 好友管理:添加、查看、删除好友及处理好友请求。 4. 通讯管理:创建聊天室、在线聊天、消息发送/接收、历史记录和实时通知。 5. 技术实现:使用Django认证系统、channels库支持WebSocket、MySQL数据库、前端技术(如HTML/CSS/JavaScript)以及性能优化。 请注意,由于字符限制,部分图片无法在摘要中展示。
37 6
|
2月前
|
前端开发 关系型数据库 MySQL
109-Django开发考试与问卷系统
该项目描述了用户、测试和权限三个核心模块的详细需求。用户模块包括注册(需验证信息并唯一性检查,密码安全存储,确认邮件)和登录(凭据验证,可选的“记住我”功能,防止暴力破解)。测试模块涉及题目、选项和分数设置,支持创建、编辑及自动评分。权限模块关注用户角色和权限管理,实现访问控制。其他考虑因素涵盖用户界面、数据库选择(如SQLite3和MySQL)、安全性最佳实践以及系统的可维护性和可扩展性。
20 3
|
2月前
|
前端开发 搜索推荐 数据挖掘
112-Django开发快捷电子商城
这是一个电商平台的技术栈和功能亮点介绍。平台基于Python Django框架构建,采用Sqlite数据库,保证稳定性和可扩展性。前端利用Bootstrap和jQuery提供响应式设计。管理后台具有灵活权限管理、直观界面和数据分析功能。购物车支持智能推荐、多平台同步和快速结算。订单管理具备实时追踪、智能提醒和数据分析。优惠券系统涵盖多种类型,实现精准发放和效果分析。商城管理注重商品信息丰富、智能搜索和多渠道营销。响应式布局确保全平台适配,优化加载速度并支持个性化主题。文中还附有多张示意图展示相关功能。
25 0
|
2月前
|
前端开发 JavaScript UED
111-Django开发酒店管理系统
这个内容描述了一个基于Python Django框架的酒店管理系统,采用SimpleUI、Bootstrap和jQuery来设计界面和实现响应式布局及动态交互。系统有多个用户角色,包括管理员、店长、经理、接待客服和员工,每个角色有不同的权限,例如管理员可以管理所有模块,店长和经理则限于特定店铺或部门,而接待客服主要负责客人入住和预订管理。此外,系统还包含了房间管理、活动管理、预订管理、客房服务、注意事项和退款管理等多个功能模块。系统界面设计简洁直观,支持多设备适应。
64 0
|
2月前
|
运维 网络协议 Linux
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试
2024年最全CentOS8 Consul微服务架构安装(1)_agent(1),Linux运维开发面试