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

来源:互联网 发布:淘宝买药安全吗 编辑:程序博客网 时间:2024/05/21 00:50

时间 2014-07-15 16:20:54  运维笔记-51CTO技术博客

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

TodayArchiveView:搜索今天的数据

YearArchiveView:搜索指定年份的数据

MonthArchiveView:搜索指定月份的数据

DayArchiveView:搜索指定日的数据

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

models.py

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

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 = Trueclass 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 = Trueclass 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 = Trueclass 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

    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/

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

0 0
原创粉丝点击