关于本站
1、基于Django+Bootstrap开发
2、主要发表本人的技术原创博客
3、本站于 2015-12-01 开始建站
星期一,工作有点多。想添加评论功能,好吧,其实有点懒。先优化一下网站UI ^_^
1、顺便修改setting.py,设置语言为"zh-hans"。这个汉化之后,使用更加方便。
2、修改首页的样式等,过于繁杂,这里我就不贴出来了。主要使用bootstrap里面的样式。
3、过滤HTML标签(模版过滤器)
在显示博客文章列表的时候,只需要显示部分字符,即摘要。
而在显示整个博文内容的时候,就需要显示全部内容,包括html标签。
我在显示博文内容的模板标签语言 {{ blog.content }} 加了过滤器改成 {{ blog.content|safe }},表示这个内容是安全的,可以正常使用里面的html标签。这样我就可以换行、用pre等标签了。
在首页显示博客列表的模板标签中,把 {{ blog.content }} 加过滤器改成 {{ blog.content|striptags|truncatechars:100 }},过滤掉html标签和只显示前100个字符。
过滤标签还有如下:
1) striptags:过滤掉所有html 标签
2) removetags:有选择性的过滤html 标签
3) safe:原原本本显示内容,实际展示给用户的。
4) slice:对内容进行截取。
4、博文添加阅读次数字段,并实现每阅读一次自增1 实现每阅读一次自增1,这个不难实现。
打开博文连接,Django会交给views.py文件的一个指定函数处理。在获取对应的博文对象时,自增1。当然这个每打开一次链接就会加1次,不够精确。可以设置cookies,判断是否之前打开过来。若打开过了就不再自增1。
blog = Blog.objects.get(id=id) #获取对应的博文 blog.read_num += 1 #阅读字段自增1 blog.save() #保存数据
5、修改标签显示,添加显示博文数量为了显示标签列表同时也显示标签下的博文数。
那需要同时响应3个信息:标签ID,标签名,标签博文数。若直接返回整个标签集合是得不到博文数。所以我重新封装了一下,弄了一个迭代器。
from blog.models import Blog,Tag class TagsHelper: def __init__(self,currenttag=''): self.currentTag=currenttag self.tags=Tag.objects.all() self.index=0 self.count=len(self.tags) def __iter__(self): return self def next(self): if self.index>=self.count: raise StopIteration tag=self.tags[self.index] self.index=self.index+1 return tag.id,tag.tag_name,len(tag.blog_set.all()) #同时返回3个信息
然后实例化这个类为tagshelper对象传递给模版文件。在模版文件如下处理:
<h4>标签</h4> <ul> {% for tag_id,tag_name,tag_num in tagshelper %} <li> <a href="{% url 'detailtag' tag_id%}">{{tag_name}}</a> ({{tag_num}}) </li> {% endfor %} </ul>
明天再继续 ^_^,前期会有各种细节的东西要写。