随笔分类 - Django博客
用到的技术知识
摘要:一次性响应:HttpResponse类及其子类、JsonResponse类 流式响应:SteamingHttpResponse类、FileResponse类 文件下载为例 #HttpResponse方式,文件内容一次性响应,仅适合小文件 def file_download(request): wit
阅读全文
摘要:django.views.decorators.http 路由不能判断HTTP请求的类型 Django通过decorators在视图函数前进行基本判断,格式如下: 这段代码my_view实现只处理GET和POST方法,其他方法将被过滤掉 from django.views.decorators.ht
阅读全文
摘要:一、新增评论和回复无法点赞 因为原先字符串没有点赞的功能,所以得加这个功能 因为js代码没有占位符或foramt函数,这里打算定义一个format函数,让他可以通过占位符给他加进去。实际是替换我们前面定义好的花括号加数字字符串的操作。 String.prototype.format = functi
阅读全文
摘要:一、点赞功能设计 1、博客、评论、回复可点赞 2、可取消点赞 3、可看到点赞数 前端设计 <div class="like" onclick="likeChange(this,'{% get_content_type blog %}',{{ blog.pk }})"> <span class="gl
阅读全文
摘要:1、如何获取评论数 方法:filter筛选再用count方法计数 问题:页面和代码更加复杂了(博客列表页面的评论计数需要每篇博客都算一次也可以,也可以设计一个方法让博客类继承) 2、自定义模版标签 标签不用在views中做处理,在模版页面可以直接去使用 降低耦合度,代码更加独立和使用更加简单 在ap
阅读全文
摘要:1、如何设计回复功能 评论被回复 回复可被回复 如果设计指向上一级回复模型需要设计无限多个,不合理。 回复也是一种评论的行为,本质是评论。 所以让回复在评论里面实现。 更改评论模型 from django.contrib.contenttypes.fields import GenericForei
阅读全文
摘要:我们在后台admin已经用过富文本编辑来编辑我们的博客,这次我们用它提供的这个Widget类,给我们去渲染出一个富文本编辑器在前端的末班页面。 这个Widget可以去给DjangoForm表单去使用。 1、django-ckeditor富文本编辑表单 每个字段类型都有一个适当的默认Widget类 d
阅读全文
摘要:1.Django Form表单的作用 Django用Form类描述html表单,帮助或简化操作 1、接收和处理用户提交的数据 可检查提交的数据 可将数据转换成Python的数据类型 2、可自动生成html代码 上次登录界面是写在了博客页面,这次应该把它提取出来作为一个公共页面,点击登录时进入这个公共
阅读全文
摘要:1.提交评论 评论对象、评论内容、评论时间、评论者 request发送请求的时候还会发送一些其他东西,请求头记录了一些信息,包括它是从那个页面进来的。 上次登录成功的时候跳转到了首页,为了改善用户体验,应该跳转到登录之前那个页面,reverse为反向解析 referer = request.META
阅读全文
摘要:1.实现评论功能的方式 1>第三方社会化评论插件——>友言、多说、畅言、Dispqu、网易云跟帖 2>Django评论库——>django-comment 3>自己写代码 评论库是个app,首先需要建好这个模型,根据这个模型进一步去拓展。 2.创建评论模型 评论对象(哪一篇文章,哪一篇公告之类的)
阅读全文
摘要:1.利用阅读量数据排行 1>24小时内——>今天数据统计 2>昨日——>昨天数据统计 3>一周 4>30天 今天和昨天比较好做,获取今天和昨天的日期,根据传入的content_type和日期筛选出符合的记录,并按阅读次数倒序排序,返回ReadDetail的查询集 def get_today_hot_
阅读全文
摘要:1.简单计数方法的缺点 1>后台编辑博客可能影响数据 2>功能单一,无法统计某一天的阅读数 为了解决统计某一天博客的阅读数量的信息,我们需要新创建一个模型,里面包含日期。 from django.utils import timezone class ReadDetail(models.Model)
阅读全文
摘要:为了解决上一篇写到的计数功能的单一,我们把把计数功能独立,把博客内容和计数字段分开,再通过外键关联 class Blog(models.Model): title = models.CharField(max_length=50) blog_type = models.ForeignKey(Blog
阅读全文
摘要:1.Blog模型添加数字字段记录 在Blog模型增加字段 readed_num = models.IntegerField(default=0)之后同步数据库 makemigrations 应用迁移文件migrate可以在后台admin显示readed_num 2.每次有人打开,记录数+1 在vie
阅读全文
摘要:博客后台富文本编辑 1.使用html丰富页面 简单文本编辑——>直接贴入html代码 博客前端内容页面需要设置过滤器|safe <div class="blog-content">{{ blog.content|safe }}</div> 博客前端列表页面需要设置过滤器|striptags过滤模版标
阅读全文
摘要:博客类型模型 class BlogType(models.Model): type_name = models.CharField(max_length=15) def __str__(self): return self.type_name 第一种方法 #获取博客分类的对应博客数量blog_typ
阅读全文
摘要:一对一Model ,有外键即设置关联关系的一方为从表,从表查主表为正向查询,反之。这里护照为从表,人为主表。 class Passport(models.Model): # 护照(从表) note = models.CharField(max_length=20) person = models.O
阅读全文
摘要:1.对比当前博客,得到上一篇或下一篇博客 def blog_detail(request, blog_pk): context = {} blog = get_object_or_404(Blog, pk=blog_pk) context['previous_blog'] = Blog.object
阅读全文
摘要:1.当前页高亮 {% for page_num in page_of_blogs.paginator.page_range %} {% if page_num == page_of_blogs.number %} <li class="active"><span>{{ page_num }}</sp
阅读全文
摘要:<div class="navbar navbar-default navbar-fixed-top" role="navigation"> <div class="container-fluid"> <div class="navbar-header"> <a class="navbar-bran
阅读全文

浙公网安备 33010602011771号