使用django开发博客过程记录5——日期归档和视图重写
针对每条博客的观看次数我么是使用django的Mixin实现的:
def get(self, request, *args, **kwargs):
last_visit = request.session.get('last_visit')
reset_last_visit_time = False if last_visit:
last_visit_time = datetime.datetime.strptime(last_visit[:-7], "%Y-%m-%d %H:%M:%S") if (datetime.datetime.utcnow() - last_visit_time).seconds > 0:
obj = super(ArticleDetailView, self).get_object()
obj.views = obj.views + 1
obj.save()
reset_last_visit_time = True
else:
reset_last_visit_time = True if reset_last_visit_time:
request.session['last_visit'] = str(datetime.datetime.utcnow()) return super(ArticleDetailView, self).get(request, *args, **kwargs)
而根据日期归档则比较麻烦,借鉴了Mysql必知必会得到了思路代码如下:
class DateView(ListView):
template_name = 'apps/full-width.html'
context_object_name = 'article_list'
paginate_by = 10 def get_queryset(self):
year = self.kwargs['year']
month = self.kwargs['month']
start_date = datetime.date(int(year), int(month), 1)
end_date = datetime.date(int(year), int(month), 31)
article_list = Article.objects.filter(create_time__range=(start_date, end_date)) return article_list
使用django开发博客过程记录5——日期归档和视图重写的更多相关文章
- 使用django开发博客过程记录3——博客侧栏实现
		
说起这个侧栏真是苦恼我很长时间,一开始以为和之前的一样传递额外参数就可以了就像下面这样: class IndexView(ListView): template_name = 'apps/index. ...
 - 使用django开发博客过程记录4——Category分类视图
		
在写点击博客的所属分类,显示所有该分类的文章时真是让我想了好一会,为什么呢?因为我使用的是cbv模式开发的而不是简单的视图处理逻辑的,所以,有些操作会被包装好了,你并不知道它的细节,那么我们今天要实现 ...
 - 使用django开发博客过程记录2——博客首页及博客详情的实现
		
1.什么是CBV(Class-based views) 2.博客首页及博客详情实现 1.什么是CBV 什么是CBV?说白了就是以前是视图为处理请求返回响应的函数,有了cbv之后我们就可以用类处理请求和 ...
 - 使用django开发博客过程记录1——数据库设计
		
1.数据库设计 2.插入测试数据 3.配置相关问题 1.数据库设计 数据库有简单的三张表:Article.Category.Tag以下是代码 # -*- coding:utf-8 -*- from _ ...
 - django开发博客(1) 入门
		
现在正式开始博客开发 1.安装django1.4 如果你使用的是fedoraDVD版,安装时选择了web开发组建,这一步可以省略,因为它自带django环境 django下载地址 https://ww ...
 - 纯django开发博客系统
		
企业级教程:纯django开发博客系统 1.视频教程 https://www.duanshuilu.com/ 2.教程文档 https://www.duanshuilu.com/ 0.课程简介1.简价 ...
 - Django开发博客- 三部曲
		
其实在django中实现一个功能只需要三个步骤即可,这里我姑且叫它三部曲. 这三部曲就是: 定义urls映射 定义views 定义templates 什么是URL? URL就算一个WEB地址,你在浏览 ...
 - Django开发博客 入门篇
		
Django是神马? Django是一个开源免费的Web框架,使用Python编写.能够让你快速写出一个Web应用, 因为它包含了绝大部分的组件,比如认证,表单,ORM,Session,安全,文件上传 ...
 - Django开发博客(七)——markdown优化
		
背景 上一次把markdown集成之后.发现还是有非常多问题. 这次须要做一些优化. 1.markdown与普通文本的差别显示. 2.添加点击量的统计 3.加入名片卡的滑动 版本号相关 操作系统:Ma ...
 
随机推荐
- Android WebView 302斗争之旅
			
一.背景 越来越多的业务接入,项目内多多少少会出现几个H5页面,只是单纯的提供WebView容器接入H5页面根本满足不了需求,他们需要登录态,需要制定协议控制Native的导航栏,或者需要JsBrid ...
 - Myeclipse怎么连接MySQL数据库?
			
1.打开 >> Myeclipse 2.Window >> Open Perspective >> Myeclipse Database Explore ...
 - Eclipse创建Maven工程报错
			
问题 用Eclipse创建maven工程的时候,总是会报错,例如提示: Unable to create project from archetype [org.apache.maven.archet ...
 - 从零自学Hadoop系列索引
			
本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 从零自学Hadoop(01):认识Hadoop ...
 - MPI-2 并行IO的使用方法
			
写的MPI程序需要用到并行IO来操作文件,但是搜遍了度娘都没有找到多少关于并行IO函数的使用方法.最后在知网搜到了一些有用的论文,看了一下,感觉豁然开朗. MPI-1对文件的操作是使用绑定语言的函数调 ...
 - shell-script的简单举例
			
#!/bin/bash #defind the path PATH=/usr/local export PATH read -p "please input your first name: ...
 - MongoDB查询转对象是出错Element '_id' does not match any field or property of class
			
MongoDB查询转对象是出错Element '_id' does not match any field or property of class 解决方法: 1.在实体类加:[BsonIgno ...
 - Typical EEG waveforms during sleep 睡眠状态下的几种典型EEG波形
			
Sources: EEG Atlas
 - [LeetCode] Rotate Array 旋转数组
			
Rotate an array of n elements to the right by k steps. For example, with n = 7 and k = 3, the array ...
 - Codeforces Round #384(div 2)
			
A 题意:有n个机场处于一直线上,可两两到达,每个机场只可能属于两家公司中的一家(用0,1表示),现在要从a机场到b机场,可任意次转机.若机场i与机场j从属同一公司,则费用为0,否则费用为1.问最小费 ...